我有一個包含證書本身和私鑰的自簽名簽名。我的目的是檢查這個私鑰是否與證書匹配。我做的是以下幾點:php openssl:如何將私鑰與證書相匹配
$private = openssl_pkey_get_private("path/to/certificate");
$public = openssl_pkey_get_public("path/to/certificate");
openssl_sign("path/to/certificate", $sig, $private);
所以我創建基於私鑰和公鑰的文件。所以我需要做的是將此簽名與證書中的現有簽名進行比較。如果它們匹配,則意味着私鑰匹配。但是,我無法從文件中檢索現有簽名信息。我想知道我的方式是否正確,因爲我找不到有關Google的信息。
謝謝。
感謝您的回覆。我想做「真正的」檢查。我想比較簽名,但我無法從證書文件中提取簽名信息。你有什麼想法我可以檢索它嗎? – Dundar
我不認爲在PHP OpenSSL中有直接的方式從證書文件中檢索簽名信息。你可以得到最接近的openssl_x509_parse來從證書中獲取信息。但是,即使這樣也不能檢索簽名。如果您可以親自解析證書來進行試驗,請查看http://bit.ly/17ZIdwC。函數''extractSignature''可能會有所幫助。但是,它期望一個DER編碼證書。 – Karthik
好吧然後我會在自簽名證書的情況下使用openssl_x509_check_private_key函數。但是,如果用戶提供中間證書和真實證書,應該如何檢查匹配? – Dundar