【问题标题】:OpenSSL can read .p12 key, but keytool says the password is incorrectOpenSSL 可以读取 .p12 密钥,但是 keytool 说密码不正确
【发布时间】:2022-08-17 15:15:49
【问题描述】:
我正在尝试使用 java keytool 读取 .p12 密钥,因此我可以将其导入 java 密钥库。
运行时密码不正确:
keytool -importkeystore -srckeystore key.p12 -destkeystore mycert.keystore -srcstoretype pkcs12
然而密码是正确的,就像我运行时一样:
openssl pkcs12 -in ../../key.p12 -nodes -passin pass:password
有用。如何访问密钥并将其转换为 Java 密钥库?
这很奇怪,因为它没有使用其他 .p12 键。
谢谢
标签:
openssl
keystore
android-keystore
p12
【解决方案1】:
显然,可能存在“不兼容的密钥”,因此我使用以下说明将其转换为正确的密钥:
将不兼容的 PKCS#12 格式文件中的原始私钥和公共证书提取为传统的加密 PEM 格式。
C:\Openssl\bin\openssl.exe pkcs12 -in <PKCS#12 文件名> -out
在哪里:
<PKCS#12 Filename> 是不兼容的 PKCS#12 文件的输入文件名。
是加密 PEM 格式的输出文件名,将包含私钥和公共证书。
例如:
C:\Openssl\bin\openssl.exe pkcs12 -in my_pkcs12.pfx -out my_encrypted_pem.pem
生成兼容的 PKCS#12 文件
C:\Openssl\bin\openssl.exe pkcs12 -keypbe PBE-SHA1-3DES -certpbe PBE-SHA1-3DES -export -in -out <PKCS#12 文件名> -name ""
在哪里:
上面生成的加密PEM格式文件。
<PKCS#12 Filename> 是 pkcs#12 格式文件的输出文件名。
是有时会在用户界面中显示的所需名称。
例如:
C:\Openssl\bin\openssl.exe pkcs12 -keypbe PBE-SHA1-3DES -certpbe PBE-SHA1-3DES -export -in my_encrypted_pem.pem -out my_new_pkcs12.pfx -name "my-name"
来源:https://kb.globalscape.com/Knowledgebase/11040/Converting-an-Incompatible-PKCS12-Format-File-to-a-Compatible-PKCS12