2012-10-31 183 views
0

Java密鑰(用於碼頭)從的Apache2的mod_ssl的,我有以下的工作配置文件:生成標準的Apache SSL證書

SSLCertificateFile  x (certificate) 
SSLCertificateKeyFile y (rsa private key) 
SSLCertificateChainFile z.crt 

從這些文件,我想生成Java密鑰,可以是通過SSL進入碼頭。我做了大量的閱讀,但是我對這裏的實際情況感到困惑,並且需要將這些文件轉換爲密鑰庫的步驟。

+0

可能重複[我怎樣才能從現有的證書(abc.crt)密鑰庫和abc.key文件?(http://stackoverflow.com/questions/11952274/how-can-i-創建-密鑰庫從-AN-現有證書-ABC-CRT-和-ABC鍵-FIL) – Bruno

回答

1

您無法直接將私鑰導入密鑰庫。但是您可以使用openssl將密鑰和證書轉換爲pkcs#12存儲。然後,您可以使用選項-importkeystore和選項-srcstoretype pkcs12將整個pkcs#12導入默認的java密鑰庫。

(您也可以直接使用PKCS12店通過提供的storetype「PKCS12」)

1

假設你要使用的別名「domain.com」來存儲密鑰庫密鑰和證書,你可以使用以下命令完成工作:

keytool -keystore keystore.jks -import -alias root -file z.crt -trustcacerts 

這將導入您的根證書(或鏈文件)。然後,您可以導入證書:

keytool -keystore keystore.jks -import -alias domain.com -file x -trustcacerts 

最後,您使用的OpenSSL工具將私鑰轉換成PKCS12,並將其導入密鑰庫。

openssl pkcs12 -export -in x -inkey y -out domain.pkcs12 
keytool -importkeystore -srckeystore domain.pkcs12 -srcstoretype PKCS12 -destkeystore domain.com