Ssl
我可以將 CA 創建的 SSL 證書導入我的 Java 密鑰庫嗎?
我正在嘗試將 CA 簽名證書導入 Java 密鑰庫。我可以找到的所有說明都告訴我首先使用 Java 密鑰工具創建一個密鑰庫和一個簽名請求 (CSR),然後讓 CA 簽署 CSR,然後將簽名的證書導入回密鑰庫。
好吧,愚蠢的我沒有閱讀精美的手冊,而是讓 CA 為我線上創建證書,而不是上傳我自己的 CSR。現在我有:
ca.pem
CA的根證書sub.class1.server.ca.pem
CA的中間證書mydomain.crt
我的域的簽名證書,由 CA 創建mydomain.key
我的證書的私鑰文件,由 CA 創建我嘗試將證書導入到我的密鑰庫,如下所示:
keytool -import -trustcacerts -alias root -file ca.pem -keystore mykeystore.jks keytool -import -trustcacerts -alias intermediate -file sub.class1.server.ca.pem -keystore mykeystore.jks keytool -import -alias mydomain mydomain.crt -keystore mykeystore.jks
所以密鑰庫的內容現在看起來像這樣:
intermediate, Jul 16, 2015, trustedCertEntry, Certificate fingerprint (SHA1): 0A:D3:... root, Jul 16, 2015, trustedCertEntry, Certificate fingerprint (SHA1): 3E:2B:... mydomain, Jul 16, 2015, trustedCertEntry, Certificate fingerprint (SHA1): 18:F2:... selfsigned, Feb 4, 2015, PrivateKeyEntry, Certificate fingerprint (SHA1): 2B:74:...
不幸的是,當使用“mydomain”別名時,我試圖保護的服務(JIRA 伺服器)無法訪問。當我使用“selfsigned”別名時,這是我之前從密鑰庫創建的自簽名證書,所有其他設置都相同,可以很好地訪問服務(除了關於自簽名證書的警告,課程); 所以我認為問題在於 CA 生成的證書。
我嘗試按照此執行緒中的建議連接 mydomain.crt 和 mydomain.key 文件但沒有成功: 導入 PEM 證書鍊和 Java 密鑰庫的密鑰
有什麼我可能做錯了嗎?是否可以將第三方創建的證書導入現有的 Java 密鑰庫?或者我是否需要撤銷該證書並使用從我的密鑰庫中提取的自製 CSR 再次完成該過程?
我過去通過使用 PKCS12 密鑰庫來做到這一點:
cat ca.pem sub.class1.server.ca.pem > chain.pem openssl pkcs12 -export -inkey mydomain.key -certfile chain.pem \ -out mydomain.p12 -in mydomain.pem -name mydomain
之後,通過將密鑰庫類型指定為 PKCS12 或使用 keytool 轉換為 JKS 直接使用它:
keytool -importkeystore -srckeystore mydomain.p12 \ -srcstoretype PKCS12 -deststoretype JKS -destkeystore mydomain.jks