1

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

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

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

看起来卷曲不能这样做。

4

1 回答 1

0

为了获得有效期,我使用了这个答案

并添加了这个:

    $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
    }
于 2013-10-30T22:47:59.330 回答