如何调试SSL https挂起ERR_CONNECTION_TIMED_OUT

时间:2016-04-28 07:59:12

标签: php apache amazon-web-services ssl https

虽然我的SSL证书没有过期,并且在配置它的AWS ELB中没有任何更改,但突然通过HTTPS访问我的站点并在ERR_CONNECTION_TIMED_OUT中死机。调试时我注意到它甚至没有到达PHP脚本。

如何调试浏览器,ELB中的证书和我的服务器之间的路径,以查看它“卡住”的位置?

在Ubuntu上是否有Apache的日志,我可以查看对SSL端口的请求?

1 个答案:

答案 0 :(得分:2)

您可以在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