我有一个运行 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!
如果是这样的话,日志应该可以告诉你更多信息。