我有一个PHP脚本来检查URL可用性(基本上,当URL可以在浏览器中打开时,脚本应该对给定的URL返回true,反之亦然).有一个我偶然发现的URL:
https://thepiratebay.gd/.这个URL可以在浏览器中正确打开,但fsockopen()只是因SSL握手错误而失败.在PHP中调试fsockopen()的选项并不多,但是在深入研究它时,我发现我也无法使用控制台openssl客户端连接到
https://thepiratebay.gd/:
openssl s_client -connect thepiratebay.gd:443
CONNECTED(00000003)
39613:error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal error:/SourceCache/OpenSSL098/OpenSSL098-50/src/ssl/s23_clnt.c:602:
这个网站似乎使用网络浏览器或卷曲打开,但是,我无法找到通过openssl连接到它的方法.显然,服务器使用TLS 1.2和ECDHE-ECDSA-AES128-GCM-SHA256密码,但即使我强制使用openssl,它仍然会失败:
openssl s_client -cipher ECDHE-ECDSA-AES128-GCM-SHA256 -connect thepiratebay.gd:443 -tls1_2
CONNECTED(00000003)
140735195829088:error:14094438:SSL routines:SSL3_READ_BYTES:tlsv1 alert internal error:s3_pkt.c:1256:SSL alert number 80
140735195829088:error:1409E0E5:SSL routines:SSL3_WRITE_BYTES:s