周梦康 发表于 2017-07-23 3370 次浏览
function deadlineCheck($host){
    $g = stream_context_create ([
        "ssl" => ["capture_peer_cert" => true],
        'http' => [
            'method' => 'GET',
            'user_agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36',
            'timeout'=>10
        ]
    ]);
    $r = fopen($host, "rb", false, $g);
    $cont = stream_context_get_params($r);
    $cert = openssl_x509_parse($cont["options"]["ssl"]["peer_certificate"]);

    echo $cert['subject']['CN'], "\n";
    echo date('Y-m-d H:i:s', $cert['validFrom_time_t']), "\n";
    echo date('Y-m-d H:i:s', $cert['validTo_time_t']), "\n";
    echo $cert['issuer']['O'],"\n";
    echo $cert['issuer']['CN'],"\n";
}

非常诡异,测试结果居然和运行的环境有关。


mengkang.netyq.aliyun.com
mac正确正确
centos正确错误
function deadlineCheck($host){
    $g = stream_context_create ([
        "ssl" => ["capture_peer_cert" => true],
        'http' => [
            'method' => 'GET',
            'user_agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36',
            'timeout'=>10
        ]
    ]);
    $r = fopen($host, "rb", false, $g);
    $cont = stream_context_get_params($r);
    $cert = openssl_x509_parse($cont["options"]["ssl"]["peer_certificate"]);

    var_dump($cert['subject']);
    var_dump($cert['issuer']);
}

对比本地和服务器检测的结果似乎是服务器上的访问被拦截了???

array(5) {
  'C' =>
  string(2) "CN"
  'ST' =>
  string(8) "ZheJiang"
  'L' =>
  string(8) "HangZhou"
  'O' =>
  string(36) "Alibaba (China) Technology Co., Ltd."
  'CN' =>
  string(12) "*.aliyun.com"
}
array(3) {
  'C' =>
  string(2) "BE"
  'O' =>
  string(16) "GlobalSign nv-sa"
  'CN' =>
  string(51) "GlobalSign Organization Validation CA - SHA256 - G2"
}
array(1) {
  'CN' =>
  string(16) "www.notexist.com"
}
array(1) {
  'CN' =>
  string(7) "gaofang"
}

命令行

[root@VM_132_97_centos ~]# openssl s_client -connect yq.aliyun.com:443 2>/dev/null| openssl x509 -noout -dates
notBefore=Dec  1 06:47:51 2015 GMT
notAfter=Aug  9 06:47:51 2029 GMT
^C
[root@VM_132_97_centos ~]# openssl s_client -connect mengkang.net:443 2>/dev/null| openssl x509 -noout -dates
notBefore=May 21 15:02:00 2017 GMT
notAfter=Aug 19 15:02:00 2017 GMT
^C
[root@VM_132_97_centos ~]#

mengkang.netyq.aliyun.com
mac正确错误
centos正确错误

评论列表