Php 如何调试SSL https挂起错误连接超时
虽然我的SSL证书没有过期,并且配置了它的AWS ELB中没有任何更改,但通过HTTPS访问我的站点突然挂起,并在错误连接超时时终止。调试时,我注意到它甚至没有到达PHP脚本 如何调试浏览器、ELB中的证书和服务器之间的路径,以查看其“卡住”的位置Php 如何调试SSL https挂起错误连接超时,php,apache,amazon-web-services,ssl,https,Php,Apache,Amazon Web Services,Ssl,Https,虽然我的SSL证书没有过期,并且配置了它的AWS ELB中没有任何更改,但通过HTTPS访问我的站点突然挂起,并在错误连接超时时终止。调试时,我注意到它甚至没有到达PHP脚本 如何调试浏览器、ELB中的证书和服务器之间的路径,以查看其“卡住”的位置 Ubuntu上是否有Apache日志,我可以查看对SSL端口的请求 您可以在apache中启用登录: <IfModule mod_ssl.c> ErrorLog /var/log/apache2/ssl_engine.log
Ubuntu上是否有Apache日志,我可以查看对SSL端口的请求 您可以在apache中启用登录:
<IfModule mod_ssl.c>
ErrorLog /var/log/apache2/ssl_engine.log
LogLevel debug
</IfModule>
基本TCP连接(与ssl无关)可以使用telnet检查:
- 第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
connect:Operation timed out connect:errno=60
然后telnet mydomain.com 443
来确认端口已打开,服务器正在侦听它或任何其他嗅探器,以获取数据包级别的详细信息(如果实际发生握手)。telnet mydomain.com 443也挂起,没有任何输出。关于它被卡住的位置,这意味着什么?关于TCP握手。来自SYN
-SYN,ACK
-ACK
序列的一个数据包没有通过。第二个由服务器返回,因此它可能是防火墙,或者服务器不侦听端口/接口。问题在于传输层,与ssl库/证书无关。
$ telnet stackoverflow.com 443
telnet: could not resolve stackoverflow.com/443: Name or service not known