Php 在检查远程服务器上是否启用了sslv3时,结果不一
我使用下面的php代码来检测远程服务器上是否启用了sslv3,该代码运行良好,但与执行相同操作的标准openssl命令相比,结果参差不齐 要扫描的主机示例:www.itunes.com PHP代码:Php 在检查远程服务器上是否启用了sslv3时,结果不一,php,Php,我使用下面的php代码来检测远程服务器上是否启用了sslv3,该代码运行良好,但与执行相同操作的标准openssl命令相比,结果参差不齐 要扫描的主机示例:www.itunes.com PHP代码: $stream\u sslv3=流\u上下文\u创建(数组(“ssl”=> 数组(“验证对等”=>false, “捕获会话元”=>true, “验证对等名称”=>false, “允许自签名”=>true, “加密方法”=>流加密方法SSLv3\U客户端, “sni_已启用”=>true)); @$r
$stream\u sslv3=流\u上下文\u创建(数组(“ssl”=>
数组(“验证对等”=>false,
“捕获会话元”=>true,
“验证对等名称”=>false,
“允许自签名”=>true,
“加密方法”=>流加密方法SSLv3\U客户端,
“sni_已启用”=>true));
@$read_stream_sslv3=stream_socket_client($sslv3://www.itunes.com:443“,$errno,$errstr,2,stream_client_CONNECT,$stream_sslv3);
if($read\u stream\u sslv3===false){
回声“SSLv3禁用”;
回音“\n”;
}否则{
回显“SSLv3已启用”;
回音“\n”;
}
var转储显示以下内容,表明它能够连接
var\u dump($read\u stream\u sslv3)代码>
类型(流)的资源(16)
但是,如果我在同一台计算机上使用openssl,则远程服务器上的sslv3将被禁用,并且连接失败:
openssl s_客户端-连接www.itunes.com:443-ssl3
结果:
22888:错误:1409E0E5:SSL例程:SSL3_写入_字节:SSL握手
失败:。\ssl\s 3_pkt.c:598:
没有可用的对等证书
另外,其他服务器检查工具报告说www.itunes.com上禁用了sslv3,所以我想知道为什么我的php代码说它已启用
php代码有问题吗?您使用的是哪个php版本?我刚刚在我的机器上执行了代码(PHP5.6.7),它给了我SSLv3 disabled
消息。我想这也可能取决于PHP编译时使用的openssl版本-你能用PHP-I | grep openssl
检查并将使用的openssl路径与openssl
引用的路径进行比较吗?(我不知道问题是什么,只是在这里钓鱼:))