我正在尝试将证书和密钥文件导入密钥库,但我无法做到。
如何通过导入现有证书(abc.crt)和abc.key文件来创建密钥库?
答案 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&
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