PEM_read_bio_X509_AUX() 失败 (SSL: error:0909006C:PEM 例程:get_name:no start line:Expecting: TRUSTED CERTIFICATE)

我尝试在 VPS 上的 Ubuntu 20.04 LTS 上使用 Discourse 搭建论坛。但在安装后,我遇到了以下错误:

nginx: [emerg] 无法加载证书 "/shared/ssl/domain.org.cer": PEM_read_bio_X509_AUX() 失败 (SSL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)
nginx: 配置文件 /etc/nginx/nginx.conf 测试失败

我的域名是:

我运行了以下命令:

sudo nginx -t

输出如下:

nginx: [emerg] 无法加载证书 "/shared/ssl/domain.org.cer": PEM_read_bio_X509_AUX() 失败 (SSL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)
nginx: 配置文件 /etc/nginx/nginx.conf 测试失败

我的 Web 服务器版本是:

nginx version: nginx/1.18.0

我需要创建一个证书吗?这个问题在我从 GitHub 克隆最新仓库后出现。这是预期的行为吗?

如果您进行了 Discourse 官方标准安装,并且多次删除所有内容并重新开始,您可能会触发 Let’s Encrypt 的频率限制,导致一周内无法获取证书。您可以通过遵循 使用多个域名设置 Let’s Encrypt 的指南,为站点添加其他域名来绕过此限制。您也可以直接使用不同的名称,或者等待一周。

所以一周(7 天)是我必须等待才能重新设置一切的时间吗?

根据您描述的情况,这是我最好的猜测。

好的,让我们等等。如果有效,我之后会发帖。

说明一下,我也遇到过同样的问题,原因是我忘记将 80 端口重定向到服务器。

discourse-server.sh 执行的 DNS 检查可能仅在 443 端口进行,因此未能检测到该问题。

但 Let’s Encrypt 也需要 80 端口处于开放状态。