Amazon ec2 certbot在两个不同的ec2实例上创建证书

Amazon ec2 certbot在两个不同的ec2实例上创建证书,amazon-ec2,lets-encrypt,certbot,Amazon Ec2,Lets Encrypt,Certbot,问题 我有两个EC2实例正在运行。一个EC2实例当前正在托管我的网站,您可以看到它有一个有效的letsencrypt证书。我想在第二个EC2实例上创建一个证书,在那里部署我的应用程序。一旦我的应用程序部署到第二个EC2实例上,我将销毁第一个实例。但是,我无法获得在第二个EC2实例上创建的证书 错误 - The following errors were reported by the server: Domain: thechrisbolton.com Type: unauth

问题

我有两个
EC2
实例正在运行。一个
EC2
实例当前正在托管我的网站,您可以看到它有一个有效的
letsencrypt
证书。我想在第二个
EC2
实例上创建一个证书,在那里部署我的应用程序。一旦我的应用程序部署到第二个EC2实例上,我将销毁第一个实例。但是,我无法获得在第二个EC2实例上创建的证书

错误

- The following errors were reported by the server:

   Domain: thechrisbolton.com
   Type:   unauthorized
   Detail: Invalid response from
   https://thechrisbolton.com/.well-known/acme-challenge/kITr3I__o6eb_WH2cguR200gWnt998DN1s8xamtPIbM
   [3.234.11.212]: "<html>\r\n<head><title>404 Not
   Found</title></head>\r\n<body>\r\n<center><h1>404 Not
   Found</h1></center>\r\n<hr><center>nginx/1.18.0</ce"

   Domain: www.thechrisbolton.com
   Type:   unauthorized
   Detail: Invalid response from
   https://www.thechrisbolton.com/.well-known/acme-challenge/DhzxfraTsUeN3a7bXQhfzS36CTHRzlBUWVAHceD
ETB8
   [3.234.11.212]: "<html>\r\n<head><title>404 Not
   Found</title></head>\r\n<body>\r\n<center><h1>404 Not
   Found</h1></center>\r\n<hr><center>nginx/1.18.0</ce"
-服务器报告了以下错误:
域名:thechrisbolton.com
类型:未经授权
详细信息:来自的响应无效
https://thechrisbolton.com/.well-known/acme-challenge/kITr3I__o6eb_WH2cguR200gWnt998DN1s8xamtPIbM
[3.234.11.212]:“\r\n404不是
找到\r\n\r\n404未找到

已找到\r\n
nginx/1.18.0无法获取在第二个EC2实例上创建的证书的原因。原因是域
https://thechrisbolton.com/
未指向第二个EC2实例

它的工作原理

(为了便于解释,我简化了流程。)

certbot的工作方式是,它向“Let's Encrypt”发送请求,为给定域颁发证书(在本例中为
https://thechrisbolton.com/
)。响应该请求,“让我们加密”(又名LE)给certbot一个文件(又名挑战)它需要把它放在一个可以从这个url通过互联网访问的位置
http:///.well-known/acme-challenge/
.Certbot正是这样做的,并将文件放在运行
Certbot--certonly
命令时指定的位置(您使用了选项
--standalone
,在这种情况下,certbot在端口80上启动自己的服务器,并使文件在位置
/.well-known/acme challenge/
可用),然后它调用“让我们加密”“再次表示文件已准备就绪,请给我证书。然后,LE点击此URL以验证文件是否在给定位置可用。如果找到文件,则仅颁发证书。所有这些都是为了确保请求证书的人拥有他请求证书的域

解决方案是什么?

如果您使用的是静态IP,那么只需将静态IP指向新的EC2实例,并将证书移动到新机器上,它就可以工作了

如果您无法做到这一点,请更新您的DNS条目以指向新EC2实例的公共IP,并运行与您现在运行的相同的
certbot
命令