3

我确信这是一个典型的场景,但我找不到合适的步骤顺序。

我在(比如说)1.1.1.1 有一个运行 Apache 的 www.example.com 服务器。我正在使用 Caddy 在 2.2.2.2 构建一个新服务器。为了测试,我输入2.2.2.2 www.example.com了我的本地 /etc/hosts。一旦一切正常,我会将 www.example.com DNS 条目重新指向 Caddy。

问题是我无法在 2.2.2.2 上启动 Caddy 来服务 www.example.com。

我明白了 [www.example.com] failed to get certificate: acme: Error 403 - urn:acme:error:unauthorized - Invalid response from http://www.example.com/.well-known/acme-challenge/6Xc4_oq6r0de25CtrYIw59YeVHvUWQ9Ag6H3XbGx8y0:

我认为这是由于 www.example.com 的 DNS 条目指向 1.1.1.1,而不是 2.2.2.2

那么如何获取证书并启动 Caddy,以便在更新公共 DNS 条目之前在 2.2.2.2 上测试 www.example.com?

4

2 回答 2

1
  1. 为测试服务器起一个新名称,例如test.example.com.

  2. 将 的 DNS A 记录test.example.com指向与 相同的地址www.example.com

  3. 获取包含两个名称的 Let's Encrypt 证书。Let's Encrypt 可让您在证书中放入所需的名称。

  4. 获得证书后,将测试服务器的 DNS A 记录指向新地址。现在您可以在生产服务器和测试服务器中使用相同的证书。

于 2017-01-16T11:32:00.180 回答
0

首先,您真的应该只将私有 IP 用于测试/试用站点。您可以使用以下任何一种

  • 10.xxx
  • 192.168.xx
  • (还有一些)

所以而不是

2.2.2.2 myexamplesite.com

利用

10.2.2.2 myexamplesite.com

这也回答了您的问题,仅当 letencrypt 站点可以通过您无法控制的 DNS 服务器提供的公共 IP 地址访问您的站点时,使用 let encrypt 的球童 TLS 才有效。这是出于非常基本的安全目的。

您可以生成自签名证书并使用它,但恐怕无法按照您想要的方式使用带有球童的自动 TLS。

于 2017-01-16T10:29:07.230 回答