尽管我的 SSL 证书没有过期,并且配置了该证书的 AWS ELB 中没有任何更改,但突然间通过 HTTPS 访问我的站点挂起并在ERR_CONNECTION_TIMED_OUT中死亡。调试时,我注意到它甚至没有到达PHP脚本。
如何调试浏览器、ELB 中的证书和服务器之间的路径以查看它"卡住"的位置?
Ubuntu 上有 Apache 的日志,我可以查看对 SSL 端口的请求吗?
您可以在 apache 中启用日志记录:
<IfModule mod_ssl.c>
ErrorLog /var/log/apache2/ssl_engine.log
LogLevel debug
</IfModule>
并使用 OpenSSL s_client 从客户端检查 SSL 协商的外观,例如:
openssl s_client -connect stackoverflow.com:443
可以使用telnet
检查基本TCP连接(与SSL无关):
第 1-4 层工作良好,已建立连接:
$ telnet stackoverflow.com 443 Trying 104.16.35.249... Connected to stackoverflow.com. Escape character is '^]'.
解析主机,但无法握手:
$ telnet stackoverflow.com 443 Trying 104.16.37.249...
无法解析主机:
$ telnet stackoverflow.com 443 telnet: could not resolve stackoverflow.com/443: Name or service not known