如何从现有证书(abc.crt)和abc.key文件创建密钥库?

时间:2012-08-14 12:27:23

标签: ssl keytool

我正在尝试将证书和密钥文件导入密钥库,但我无法做到。

如何通过导入现有证书(abc.crt)和abc.key文件来创建密钥库?

5 个答案:

答案 0 :(得分:101)

最简单的可能是使用OpenSSL创建PKCS#12文件:

openssl pkcs12 -export -in abc.crt -inkey abc.key -out abc.p12

您应该能够使用PKCS12密钥库类型直接使用生成的文件。

如果确实需要,可以使用keytool -importkeystore(在Java 6的keytool中提供)将其转换为JKS:

keytool -importkeystore -srckeystore abc.p12 \
        -srcstoretype PKCS12 \
        -destkeystore abc.jks \
        -deststoretype JKS

答案 1 :(得分:28)

您必须使用OpenSSL和keytool。

OpenSSL for CER& P12

  

openssl pkcs12 -export -name servercert -in selfsignedcert.crt -inkey serverprivatekey.key -out myp12keystore.p12 < /强>

p12的Keytool&gt; JKS

  

keytool -importkeystore -destkeystore mykeystore.jks -srckeystore myp12keystore.p12 -srcstoretype pkcs12 -alias servercert

答案 2 :(得分:1)

除了@Bruno的答案,您还需要提供-name作为别名,否则Tomcat会抛出Alias name tomcat does not identify a key entry错误

示例命令: openssl pkcs12 -export -in localhost.crt -inkey localhost.key -out localhost.p12 -name localhost

答案 3 :(得分:1)

在@MK Yung和@Bruno的答案中添加内容。请为目标密钥库输入密码。输入没有密码的命令时,我看到控制台挂起。

openssl pkcs12 -export -in abc.crt -inkey abc.key -out abc.p12 -name localhost  -passout pass:changeit

答案 4 :(得分:0)

如果密钥库用于tomcat,则在使用上述答案创建密钥库后,必须添加最后一步来为密钥创建“ tomcat”别名:

keytool -changealias -alias "1" -destalias "tomcat" -keystore keystore-file.jks

您可以使用以下方法检查结果:

keytool -list -keystore keystore-file.jks -v