检查远程服务器

时间:2015-05-04 01:43:53

标签: php

我正在使用以下php代码来检测远程服务器上是否启用了sslv3,代码工作正常,但我发现它与标准的openssl命令相比给出了混合结果

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

PHP代码:

  $stream_sslv3 = stream_context_create (array("ssl" => 
    array("verify_peer" => false,
      "capture_session_meta" => true,
      "verify_peer_name" => false,
      "allow_self_signed" => true,
      'crypto_method' => STREAM_CRYPTO_METHOD_SSLv3_CLIENT,
      "sni_enabled" => true)));
  @$read_stream_sslv3 = stream_socket_client("sslv3://www.itunes.com:443", $errno, $errstr, 2, STREAM_CLIENT_CONNECT, $stream_sslv3);
  if ( $read_stream_sslv3 === false ) {
    echo '     SSLv3 disabled';
    echo "\n";
  } else {
    echo 'SSLv3 enabled';
    echo "\n";
  }

var转储显示以下内容,表明它能够连接?

var_dump($read_stream_sslv3);

  

类型(流)的资源(16)

但是,如果我在同一台机器上使用openssl,则在远程服务器上禁用sslv3并且连接失败:

openssl s_client -connect www.itunes.com:443 -ssl3

结果:

  

22888:错误:1409E0E5:SSL例程:SSL3_WRITE_BYTES:ssl握手   失败:。\ ssl \ s 3_pkt.c:598:   没有可用的对等证书

此外,其他服务器检查工具报告在www.itunes.com上禁用了sslv3,所以我想知道为什么我的php代码说它已启用?

php代码有问题吗?

0 个答案:

没有答案