如何在没有DNS的情况下通过Let's Encrypt实现Caddy自动TLS?

时间:2017-01-15 10:48:20

标签: lets-encrypt certbot caddy caddyfile

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

我在运行Apache的(例如)1.1.1.1上有一个www.example.com服务器。我正在使用Caddy在2.2.2.2上构建一个新服务器。为了测试,我将2.2.2.2 www.example.com放在我的本地/ etc / hosts中。一旦所有工作正常,我将重新指定给凯迪的www.example.com DNS条目。

问题是我无法在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?

2 个答案:

答案 0 :(得分:1)

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

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

  3. 获取包含这两个名称的Let's Encrypt证书。让我们加密可以让您在证书中输入您想要的名称。

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

答案 1 :(得分:0)

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

  • 10.x.x.x
  • 192.168.x.x
  • (还有一些)

所以而不是

  

2.2.2.2 myexamplesite.com

使用

  

10.2.2.2 myexamplesite.com

也可以回答你的问题,使用let加密的球童TLS只有在letencrypt网站可以通过你无法控制的DNS服务器提供的公共ipaddress访问你的网站时才有效。这是出于非常基本的安全目的。

您可以生成自签名证书并使用它,但我担心无法以您想要的方式自动使用球童TLS。