如何使用keytool将证书创建到PKCS12密钥库?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用keytool将证书创建到PKCS12密钥库?相关的知识,希望对你有一定的参考价值。
我想用keytool程序将证书创建为PKCS12密钥库格式。
密钥库有扩展.pfx
。
我该如何实现这一目标?
答案
如果密钥库是PKCS12类型(.pfx
),则必须使用-storetype PKCS12
指定它(为了可读性而添加了换行符):
keytool -genkey -alias <desired certificate alias>
-keystore <path to keystore.pfx>
-storetype PKCS12
-keyalg RSA
-storepass <password>
-validity 730
-keysize 2048
另一答案
对问题关键的补充答案。
使用JDK 8(1.8.0_121-b13)如果删除-storetype pkcs12
,但keytool
会创建一个JKS
密钥库,并且忽略.pfx
扩展名,则不会出现异常。
它还要求-keypass mykeypassword
keytool
不支持PKCS12。
%JAVA_HOME%/bin/keytool -genkeypair -alias mykey -keyalg EC -dname "cn=CN, ou=OU, o=O, c=C" -validity 365 -keystore keystore.pfx -keypass mykeypassword -storepass mystorepassword -v
(translated)
Generating keypair (Type EC, 256 Bit) and self-signed certificate (SHA256withECDSA) with a validity of 365 days
for: CN=CN, OU=OU, O=O, C=C
[keystore.pfx saved]
列出内容:
%JAVA_HOME%/bin/keytool -list -keystore keystore.pfx -storepass mystorepassword
(translated)
Keystore-Type: JKS
Keystore-Provider: SUN
Keystore contains 1 entry.
mykey, 25.04.2017, PrivateKeyEntry,
Certificate-Fingerprint (SHA1): A1:6C:5F:8F:43:37:1A:B6:43:69:08:DE:6B:B9:4D:DB:05:C9:D5:84
你看它是一个Java密钥库。
接下来的问题是,即使你在-storetype pkcs12
密钥库时指定-list
,keytool仍然会将商店显示为JKS密钥库!
我们试试看:
%JAVA_HOME%/bin/keytool -genkeypair -alias mykey -keyalg EC -dname "cn=CN, ou=OU, o=O, c=C" -validity 365 -storetype pkcs12 -keystore keystore.pkx -keypass mykeypassword -storepass mystorepassword -v
(translated)
Warning: No support for different keystore and key password for PKCS12 keystores. The value of -keypass will be ignored.
Generating keypair (Type EC, 256 Bit) and self signed certificate (SHA256withECDSA) with a validity of 365 Days
für: CN=CN, OU=OU, O=O, C=C
[keystore.pkx saved]
现在列出内容:
%JAVA_HOME%/bin/keytool -list -keystore keystore.pkx -storepass mystorepassword
(translated)
Keystore-Type: JKS // ??
Keystore-Provider: SUN
Keystore contains 1 entry
mykey, 25.04.2017, PrivateKeyEntry,
Certificate Fingerprint (SHA1): EA:C2:36:C6:55:69:CB:32:22:C7:14:83:67:47:D2:7E:06:8E:13:14
以上是关于如何使用keytool将证书创建到PKCS12密钥库?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 keytool 列出存储在 PKCS12 密钥库中的证书?
如何使用keytool列出存储在PKCS12密钥库中的证书?
在 Tomcat 中配置 SSL/TLS 以支持 HTTPS