![Arch Linux 上使用 Apache 2.4.23 进行 Let's Encrypt 时出现“无法连接”错误](https://linux22.com/image/695801/Arch%20Linux%20%E4%B8%8A%E4%BD%BF%E7%94%A8%20Apache%202.4.23%20%E8%BF%9B%E8%A1%8C%20Let's%20Encrypt%20%E6%97%B6%E5%87%BA%E7%8E%B0%E2%80%9C%E6%97%A0%E6%B3%95%E8%BF%9E%E6%8E%A5%E2%80%9D%E9%94%99%E8%AF%AF.png)
我有一个运行 Apache 2.4.23 的完全更新的 Arch Linux 服务器。
过去,我曾成功使用 StartSSL 在我的 Apache Web 服务器上启用 HTTPS。但现在我想切换到 Let's Encrypt。
使用 certbot standalone,我生成了以下文件:
/etc/letsencrypt/live/[my domain]/cert.pem
/etc/letsencrypt/live/[my domain]/chain.pem
/etc/letsencrypt/live/[my domain]/fullchain.pem
/etc/letsencrypt/live/[my domain]/privkey.pem
以下是我的 Apache SSL 指令:
SSLEngine on
SSLCertificateKeyFile /etc/letsencrypt/live/[my domain]/privkey.pem
SSLCertificateFile /etc/letsencrypt/live/[my domain]/cert.pem
SSLCertificateChainFile /etc/letsencrypt/live/[my domain]/chain.pem
# HSTS (mod_headers is required) (15768000 seconds = 6 months)
Header always set Strict-Transport-Security "max-age=15768000"
SSLProtocol +TLSv1.2
我仔细检查了 [我的域名] 是否正确,并且重新启动 Apache 没有产生任何错误,但现在尝试访问我的服务器时,我的网络浏览器会显示“无法连接”错误。
我是否遗漏了什么?谢谢!
答案1
对于 Apache 2.4,您只需要以下内容:
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/{domain}/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/{domain}/privkey.pem
不需要像你之前做的那样把它分割开。
继续查看无法连接的消息。这说明您的服务器可能没有监听端口 443。使用 netstat 或类似命令,验证 Apache 是否确实在监听 :443。您还可以使用 netcat 测试服务器上与 :443 的连接,如下所示:
$ nc -v localhost 443
Connection to localhost 443 port [tcp/https] succeeded!
如果是这样的话,日志应该可以告诉你更多信息。