簡體   English   中英

ssl:將私鑰與證書匹配| 使用php&phpseclib

[英]ssl: match private key with certificat | using php & phpseclib

情況:我有一個服務器管理面板,用戶應能夠上載私鑰/證書/ ca證書(/ CSR)以保護SSL網站。

上傳的數據如下所示:

私鑰=

-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEA3u+SI24XGAqIHNLcmCfEFOpMVAOEZOw3DpZ7VexB6soLiu0a
[...]
M9YQw2MV/EhNXTh7PW85HJKAZyTxLJvWIXbEeY9XX+GkqJuQ1GhfgfE=
-----END RSA PRIVATE KEY-----

證書=

-----BEGIN CERTIFICATE-----
MIIDfjCCAmigAwIBAgIEU6fNGzALBgkqhkiG9w0BAQUwgYExCzAJBgNVBAYMAkRF
[...]
oosSAukE596+wwM0XXDFOT2T/D0lHvW1QVyFx0GzCRHWqQ==
-----END CERTIFICATE-----

問題:上傳后,我需要檢查cert / ca-cert是否與私鑰(/ CSR)匹配,以確保所有上傳的部分都屬於同一部分。


我想我被卡住了。 使用openssl,我可以檢查以下命令的輸出是否相互匹配。 但是我不知道如何用phpseclib做到這一點。

openssl x509 -noout -modulus -in certificate.crt | openssl md5
openssl rsa -noout -modulus -in privateKey.key | openssl md5
openssl req -noout -modulus -in CSR.csr | openssl md5

(我想堅持使用phpseclib,所以不可能使用openssl)

非常非常感謝你!

這樣的東西可以解決問題嗎?:

$rsa = new Crypt_RSA();
$rsa->loadKey(...);
$pubkey1 = $rsa->getPublicKey();

$x509 = new File_X509();
$x509->loadX509(...);
$pubkey2 = $x509->getPublicKey();

$csr = new File_X509();
$csr->loadCSR(...);
$pubkey3 = $csr->getPublicKey();

if (($pubkey1 == $pubkey2) && ($pubkey2 == $pubkey3)) {
    echo "they're equal";
} else {
    echo "they're not equal";
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM