2011-11-20 102 views
2

我正在寻找解决方案以从base64_encoded证书中获取证书的签名。根据我的理解(http://en.wikipedia.org/wiki/Public_key_certificate#Contents_of_a_typical_digital_certificate),证书的签名包含在证书本身中。但是,我还没有找到检索该签名的方法。获取PHP中的SSL证书签名

我打算使用签名来检查SSL证书链openssl_verify()。我知道可以通过exec('openssl verify -CAfile root.pem certificate.pem')来完成,但我想知道是否有一种方法可以在PHP本身内部完成,即使它稍微复杂一些。

在此先感谢。

回答

1

php的本地处理安全证书的能力令人难以置信,但是有一些libs已经写入并且很容易使用。有一个问题我找到了最好的是xmlseclib.php在:xmlseclib on google

+0

谢谢。肯定会研究它。 – Tech163

2

你可以使用phpseclib, a pure PHP X509 implementation

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

$x509 = new File_X509(); 
$cert = $x509->loadX509('...'); 

echo $cert['signature']; 

注意,SIG将Base64编码。根据你需要它,你可能想base64_decode它。