【问题标题】:PHP and SSL: How can I retrieve "detailed" validation results for remote site's certificate?PHP 和 SSL:如何检索远程站点证书的“详细”验证结果?
【发布时间】:2013-10-24 21:11:59
【问题描述】:

我正在尝试验证远程站点的 SSL 证书。 Curl 可以给出通用的成功或失败指示,但没有详细信息。我的客户需要详细说明为什么证书失败:错误的域、撤销或过期的证书、不受信任的 CA 等。

curl_error($ch) 当证书上的主机名错误时返回正确的错误。但是如果证书过期或被撤销,它不会返回任何信息,它会返回"Peer certificate cannot be authenticated with known CA certificates"这是不正确的。

如何使用 PHP 获取远程站点证书无效/不受信任的确切原因??

看起来 Curl 无法做到这一点。

【问题讨论】:

    标签: php curl ssl openssl


    【解决方案1】:

    为了获取有效期,我使用了this answer

    并添加了这个:

        $cert_info = openssl_x509_parse($cont["options"]["ssl"]["peer_certificate"]);
    
        if($cert_info['validFrom_time_t'] < time() < $cert_info['validTo_time_t']) {
            //Certificate is CURRENT!
        } else {
            //Certificate is Expired or not yet valid
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-02
      • 2011-12-13
      • 1970-01-01
      • 1970-01-01
      • 2022-01-09
      • 1970-01-01
      相关资源
      最近更新 更多