在运行 Fedora Server 38 的 OVH 服务器上尝试全新安装 discourse,安装过程一切顺利,但我无法使用 app.yml 中指定的 forums.dogsrv.dev 主机名连接到它。
OVH 边缘防火墙已禁用,firewalld 已禁用,iptables 已禁用,DNS 解析正常,我不知道还能检查什么了,任何建议都将不胜感激。
您可以查看 /var/discourse/shared/standalone/log/var/log/nginx/production.log。我猜您是因为 DNS 或其他原因导致 Let’s Encrypt 无法颁发证书而被限制了。
如果是这种情况,您可以等待一周或使用不同的子域(例如,使用 forum 而不是 forums)。
您运行过 discourse-setup 吗?
奇怪的是,我没有那个文件夹中的 production.log 文件,但我有一个 error.log 文件,里面只有这个错误一遍又一遍地重复出现:
2023/06/02 07:27:34 [emerg] 289163#289163: cannot load certificate "/shared/ssl/forums.dogsrv.dev.cer": PEM_read_bio_X509_AUX() failed (SSL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)
确实,当我查看那个证书文件时,它是空的。
我最初运行了 discourse-setup,但它总是会因以下错误而失败:
Hostname for your Discourse? [forums.dogsrv.dev]:
Checking your domain name . . .
WARNING: Port 443 of computer does not appear to be accessible using hostname: forums.dogsrv.dev.
WARNING: Connection to http://forums.dogsrv.dev (port 80) also fails.
我猜想这是因为 .dev TLD 默认在 Google 的 HSTS 预加载列表中,所以我只是手动配置了 app.yml 文件并运行了 ./launcher rebuild app,这似乎运行正常。
我尝试将子域名切换到 forum 并重建了应用程序,但仍然遇到相同的问题,并收到与之前相同的错误,只是将 forums 替换为 forum。
您是否在 Docker 外部的防火墙上打开了端口?
是的,firewalld 已完全禁用,iptables 也一样。如果我在服务器本身上手动安装和配置 Apache 或 Nginx,可以看到端口 80 和 443 都允许流量通过,但由于 HSTS,我需要在所有 HTTP 请求上启用 HTTPS 重写并配置有效的 SSL 证书,而这正是目前的问题所在。
也许您应该打开 80 和 443 端口?
这听起来仍然像是有什么东西在干扰入站流量。您是否正在使用 Cloudflare 进行 DNS 解析?
不,我正在使用谷歌。
如果 Discourse-setup 正在进行的测试失败,那么你需要找出原因。很明显,它(Let’s Encrypt)是正确的,并且 Let’s Encrypt 无法分配证书。
既然你知道如何安装 nginx 和 apache,你可以尝试让 Let’s Encrypt 签发证书,但很明显它正在阻止 80 和/或 443 端口。
好的,问题出在 discourse-setup 在使用较新版本的 netcat 时会出错,正如您在此拉取请求中所见:https://github.com/discourse/discourse_docker/pull/697
移除 -p 标志可以防止 discourse-setup 错误地报告无法连接端口,然后它会完成并成功重建应用程序,我现在可以完美连接到我的安装了。
感谢您的帮助。
很高兴你解决了问题!我不明白为什么重建无法获取证书,因为我认为你会进行重建并跳过 discourse-setup 步骤。
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.