Letsencrypt certbot — 返回了错误的证书

Letsencrypt certbot — 返回了错误的证书

我正在尝试在运行 apache 的 ubuntu 16.04 系统上安装证书。

super@fulton:~$ sudo certbot --apache
将调试日志保存到 /var/log/letsencrypt/letsencrypt.log

您想要为哪些名称激活 HTTPS?
----------------------------------------------------------------------------------------------
1:fulton.geek.nz
----------------------------------------------------------------------------------------------
选择适当的数字(用逗号和/或空格分隔),或保留输入
空白则选择显示的所有选项(输入‘c’则取消):
获取新证书
执行以下挑战:
tls-sni-01 挑战 fulton.geek.nz
等待验证...
清理挑战
授权程序失败。fulton.geek.nz (tls-sni-01):urn:acme:error:unauthorized :: 客户端缺乏足够的授权 :: tls-sni-01 质询的验证证书不正确。从 114.23.222.208:443 请求 dee657b32542a5344ac78e1c213268c6.7a4ba1bb64bebec8e35cb74fa42693a6.acme.invalid。收到 1 个证书,第一个证书名为“fulton.geek.nz”

重要笔记:
 - 服务器报告了以下错误:

   域名:fulton.geek.nz
   类型:未经授权
   详细信息:tls-sni-01 挑战的验证证书不正确。
   已请求
   dee657b32542a5344ac78e1c213268c6.7a4ba1bb64bebec8e35cb74fa42693a6.acme.无效
   来自 114.23.222.208:443。已收到 1 份证书,第一份
   证书名称为“fulton.geek.nz”

   要修复这些错误,请确保您的域名
   正确输入该域名的 DNS A/AAAA 记录
   包含正确的 IP 地址。

似乎发生的事情是 letencrypt challenge 正在获取默认的 snakeoil 证书,而不是它期望的任何证书。我知道它正在获取 snakeoil 证书,因为我将其替换为具有不同 dn 的证书,并且报告的名称发生了变化。

有什么想法可以找出问题所在吗?

答案1

我仍然不知道 certbot 到底出了什么问题,但很明显,apache 而不是 certbot 正在回答 sni 挑战,即使我在运行 certbot 之前关闭了 apache。之后它一直在运行。解决方案很简单,在关闭 apache 的情况下执行“sudo certbot certonly --standalone”。然后我手动安装了证书。

我猜 certbot 以某种方式设法启动了 apache(我知道它可能apache2ctl configtest在我的系统上启动了 apache)。如果 apache 正在运行,那么当 certbot 尝试启动在端口 443 上侦听的程序时,它将失败。

如果情况确实如此,那么人们会期望检测到并报告故障!奇怪。

这里是有关导致此消息的其他事情的优秀帖子的链接

相关内容