OpenSSL 1.0.1e 2013 年 2 月 11 日
產生自簽名憑證:
openssl req -x509 -newkey rsa:1024 -keyout key.pem -out cert.pem -days 365
在此過程中PEM 密碼要求:
輸入 PEM 密碼:
正在驗證 - 輸入 PEM 密碼:
成功完成後有2份結果文件質子交換膜格式:
密鑰.pem、證書.pem
私鑰(密鑰檔案) 是在PKCS#8格式,起始行如下:
-----開始加密私鑰-----
現在我嘗試將憑證以及相關的私鑰組合成一個PKCS#12金鑰庫並保護金鑰庫密碼。注意 - 根據我的理解,這應該有效地強制要求密碼在讀訪問期間,以及密碼短語對於對應條目的私鑰:
openssl pkcs12 -export -inkey key.pem -in cert.pem -out keystore.p12
執行後我會被問到以下問題:
輸入 key.pem 的密碼:
輸入匯出密碼:
正在驗證 - 輸入匯出密碼:
然而,據我了解,密碼短語應保持完好無損私鑰現在儲存在金鑰庫.p12文件。以下是我嘗試讀取密鑰庫內容的方法:
openssl pkcs12 -nodes -info -in keystore.p12
我得到的輸出(僅與使用密碼):
輸入導入密碼:
並以 PEM 格式列出憑證和私鑰,無需請求密碼短語對於後者。這基本上就是問題所在。這PEM 密碼不再存在私鑰。我做錯了什麼或我該如何解決這個問題?謝謝。
答案1
沒有什麼問題。這就是 PKCS12 的工作原理。 PKCS12 是用於在令牌之間安全傳輸憑證鍊和私鑰的格式。私鑰的保護/加密是透過您在要求「輸入匯出密碼」時輸入的密碼來完成的。沒有什麼比兩次加密的金鑰更好的了。
編輯:省略-nodes
選項。這會關閉私鑰加密。