Let's Encrypt:*.cer 文件为空

我无法连接到新的 标准 30 分钟安装。环境为 AWS Lightsail,2GB 内存,Ubuntu 18.04 LTS x64,已开放 :443 端口。问题是 Let’s Encrypt 的 *.cer 文件为空。原因是什么?

nginx 日志

root:/var/log/nginx# ls -ltrh
-rw-r–r-- 1 www-data www-data 0 Dec 6 05:45 error.letsencrypt.log
-rw-r–r-- 1 www-data www-data 0 Dec 6 05:45 access.letsencrypt.log
-rw-r–r-- 1 www-data www-data 1.8M Dec 6 08:19 error.log

tail error.log
PEM_read_bio_X509_AUX() failed (SSL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)

非工作站点上的证书文件。注意文件大小为零。

ls /shared/ssl/ -ltrh
-rw------- 1 root root 3.2K Dec 6 08:16 test.example.com.key
-rw-r–r-- 1 root root 0 Dec 6 08:16 test.example.com.cer
-rw------- 1 root root 302 Dec 6 08:16 test.example.com_ecc.key
-rw-r–r-- 1 root root 0 Dec 6 08:16 test.example.com_ecc.cer

与工作站点上的证书文件对比

ls /shared/ssl/ -ltrh
-rw-r–r-- 1 root root 3.2K Nov 25 07:41 forum.working.com.key
-rw-r–r-- 1 root root 3.9K Nov 25 07:41 forum.working.com.cer
-rw------- 1 root root 302 Nov 29 00:11 forum.working.com_ecc.key
-rw-r–r-- 1 root root 3.3K Nov 29 00:11 forum.working.com_ecc.cer

我已经重新构建、重启,并尝试在 app.yml 中更改 LETSENCRYPT_ACCOUNT_EMAIL 中的邮箱地址。

我昨天也遇到了同样的问题,我认为原因是域名未能解析到服务器(我使用了错误的主机名)。不过,discourse-setup 会执行一项测试来检测此类问题。

修复 DNS 问题后,请删除 /var/discourse/shared/standalone 下的 ssl 和 let’s encrypt 目录。

谢谢 @pfaffman,这解决了问题。就我而言,我第一次运行 discourse-setup 时,DNS 尚未配置,导致测试失败。当时我修复了 DNS 并输入“n”重试;这次测试通过了,构建继续,但证书文件大小为零。

我认为这是一个 bug,有空时会尝试复现。也许 setup 只是测试证书文件是否存在,但应该检查它们是否有效,或者至少不为零大小。