0

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

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

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

4

1 回答 1

0

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

这是我要做的(使用phpseclib,一个纯 PHP SSL 证书实现):

<?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'];
于 2013-09-18T15:31:51.213 回答