使用 keytool 更改密码时从 Java 密钥库中提取 PKCS12 文件
Extract PKCS12 file from Java Keystore while changing the password using keytool
我有一个 Java 密钥库:myKeystore.jks
,并给定了一个别名:someAlias
,我正在尝试以 p12
格式提取相应的资源,同时更改密码。
JKS 密码是 12345678
,与 someAlias 密钥的密码相同。
我希望使用新密码保护我的 p12 文件:1122334455
我尝试过的:
keytool -importkeystore -srckeystore myKeystore.jks -destkeystore
test.p12 -deststoretype PKCS12 -srcalias someAlias -srcstorepass
12345678 -deststorepass 1122334455
在这种情况下,test.p12
已导出,但我无法读取它,因为密码不正确或文件已损坏。
但是当我尝试这个(保持相同的密码)时:
keytool -importkeystore -srckeystore myKeystore.jks -destkeystore
test.p12 -deststoretype PKCS12 -srcalias someAlias -srcstorepass
12345678 -deststorepass 12345678
我可以使用给定的密码打开我的 test.p12
文件。
P.S :我也尝试添加 -srckeypass 参数,但没有成功。
P.S 2:我正在使用 keystore explorer 5.11 打开我的商店
我错过了什么?
您只用第一个命令更改了密钥store的密码。 key 的密码仍然是 12345678。
虽然 PKCS#12 可以为 container/content 使用不同的密码,但这是个坏主意,因为大多数应用程序都假定密码相同(这就是 KeyStore Explorer 显示该错误消息的原因).
要更改密钥的密码,您必须添加 -destkeypass
:
keytool -importkeystore -srckeystore myKeystore.jks -destkeystore myKeystore.p12
-deststoretype PKCS12 -srcalias someAlias -srcstorepass 12345678 -deststorepass
1122334455 -destkeypass 1122334455
顺便说一句,因为 Java 8 keytool 为您的命令显示一条错误消息:
keytool error: java.lang.Exception: The destination pkcs12 keystore has different storepass and keypass. Please retry with -destkeypass specified.
我有一个 Java 密钥库:myKeystore.jks
,并给定了一个别名:someAlias
,我正在尝试以 p12
格式提取相应的资源,同时更改密码。
JKS 密码是 12345678
,与 someAlias 密钥的密码相同。
我希望使用新密码保护我的 p12 文件:1122334455
我尝试过的:
keytool -importkeystore -srckeystore myKeystore.jks -destkeystore test.p12 -deststoretype PKCS12 -srcalias someAlias -srcstorepass 12345678 -deststorepass 1122334455
在这种情况下,test.p12
已导出,但我无法读取它,因为密码不正确或文件已损坏。
但是当我尝试这个(保持相同的密码)时:
keytool -importkeystore -srckeystore myKeystore.jks -destkeystore test.p12 -deststoretype PKCS12 -srcalias someAlias -srcstorepass 12345678 -deststorepass 12345678
我可以使用给定的密码打开我的 test.p12
文件。
P.S :我也尝试添加 -srckeypass 参数,但没有成功。
P.S 2:我正在使用 keystore explorer 5.11 打开我的商店
我错过了什么?
您只用第一个命令更改了密钥store的密码。 key 的密码仍然是 12345678。
虽然 PKCS#12 可以为 container/content 使用不同的密码,但这是个坏主意,因为大多数应用程序都假定密码相同(这就是 KeyStore Explorer 显示该错误消息的原因).
要更改密钥的密码,您必须添加 -destkeypass
:
keytool -importkeystore -srckeystore myKeystore.jks -destkeystore myKeystore.p12
-deststoretype PKCS12 -srcalias someAlias -srcstorepass 12345678 -deststorepass
1122334455 -destkeypass 1122334455
顺便说一句,因为 Java 8 keytool 为您的命令显示一条错误消息:
keytool error: java.lang.Exception: The destination pkcs12 keystore has different storepass and keypass. Please retry with -destkeypass specified.