Php 在检查远程服务器上是否启用了sslv3时,结果不一

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

我使用下面的php代码来检测远程服务器上是否启用了sslv3,该代码运行良好,但与执行相同操作的标准openssl命令相比,结果参差不齐

要扫描的主机示例:www.itunes.com

PHP代码:

$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
引用的
路径进行比较吗?(我不知道问题是什么,只是在这里钓鱼:))