2012-10-31 118 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