【问题标题】:OpenSSL retrieving data from a certificateOpenSSL 从证书中检索数据
【发布时间】:2013-09-22 21:12:18
【问题描述】:

我正在尝试在我的本地网站中启用 https 协议。我已经实现了证书的上传机制,它就像魅力一样。接下来我要实现的是显示一些从上传的证书中检索到的关键信息。通过这种方式,用户可以看到证书已成功上传并正常工作。例如,我想显示组织名称、到期日期。我尝试了以下方法,但它返回了所有名称信息。我想从此列表中选择组织名称。谁能指导我完成?

$certInfo  = openssl_x509_parse(file_get_contents($cert_directory . 'ssl.pem'));
echo $certInfo['name'];

另一个问题是,什么信息对用户来说是有意义的?我打算显示组织名称和到期日期,但也许显示其他一些信息也会很有用。你能对此发表评论吗?

【问题讨论】:

    标签: php https openssl certificate


    【解决方案1】:

    X.509 可以有零到两个组织名称。只是取决于发行者的专有名称和主题的专有名称是否具有它们。

    这是我要做的(使用phpseclib, a pure PHP SSL certificate implementation):

    <?php
    include('File/X509.php');
    
    $x509 = new File_X509();
    $cert = $x509->loadX509('...');
    
    echo $x509->getDN(true);
    echo '<br />';
    echo $x509->getIssuerDN(true);
    ?>
    

    您可以通过以下方式获取到期日期:

    $expiry = isset($cert['tbsCertificate']['validity']['notAfter']['utcTime']) ?
        $cert['tbsCertificate']['validity']['notAfter']['utcTime'] :
        $cert['tbsCertificate']['validity']['notAfter']['generalTime'];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-24
      • 1970-01-01
      • 1970-01-01
      • 2022-09-29
      • 2021-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多