2011-11-20 130 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它。