【问题标题】:PHP and X.509 authentication - Checking certificate issuerPHP 和 X.509 身份验证 - 检查证书颁发者
【发布时间】:2011-11-04 22:36:55
【问题描述】:

我试图在我的网站上设置一个特定页面,只有经过 X.509 身份验证的人才能访问。关键是,我希望它可供所有拥有由特定中间 CA 颁发的匹配证书的客户使用(我打算在自行生成的根 CA 下有一些中间 CA,但只有一个一个特定的中间 CA 颁发的客户端证书可以访问此页面)。这可以使用 PHP 吗?

如果我需要进一步详细说明,请告诉我,我会尝试添加更多细节。感谢您的帮助!

TC

【问题讨论】:

标签: php authentication x509 pki


【解决方案1】:

是的。当您使用 SSL 扩展和 openssl_x509_parse 函数获取证书信息时,您将可以访问证书中的所有信息。您应该可以在您的 php 脚本中执行此操作:

var_dump(openssl_x509_parse($_SERVER['SSL_CLIENT_CERT']));

您应该在该数组中看到一个“颁发者”密钥,其中包含一个包含有关客户端证书颁发者信息的数组,我假设它可以为您提供所需的信息。

【讨论】:

  • 花了很长时间才让 Apache 与我的客户证书一起工作,但是是的,这正是我所需要的。谢谢!
【解决方案2】:

如果您不想使用 OpenSSL,可以使用最新的 SVN phpseclib, a pure PHP X.509 parser。例如。

<?php
include('File/X509.php');

$x509 = new File_X509();
$x509->loadX509($_SERVER['SSL_CLIENT_CERT']);
echo $x509->getIssuerDN(true);
?>

【讨论】:

    猜你喜欢
    • 2017-10-01
    • 2017-12-26
    • 2021-04-13
    • 1970-01-01
    • 1970-01-01
    • 2015-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多