如何解决在 Windows Server 2012 上导入证书失败
我有一个 p12 文件 (RS256),当我在 Windows 10 上通过证书导入向导打开并按照步骤操作时,Windows 可以使用密码读取该文件,但是当它移动到 Windows Server 2012 r2 并执行相同的步骤时, windows 无法读取文件,因为输入的密码不正确。请帮忙,为什么我无法将 p12 导入 windows server 2012 r2
更新
在 windows 10 上使用 keytool 从 jks 文件转换的 p12 文件,我尝试在 windows server 2012 上重新转换它,但仍然无法读取文件,因为密码不正确(我很确定密码输入正确),你能建议我如何正确地将 jks 文件转换为 p12 与 sha256withRSA 在 windows server 2012 r2 上运行吗?
此命令生成成功但导入失败:
keytool -importkeystore -srckeystore e:\file.jks -srcstoretype JKS -deststoretype PKCS12 -destkeystore e:\file.p12 -sigalg RS256
keytool -importkeystore -srckeystore e:\file.jks -srcstoretype JKS -deststoretype PKCS12 -destkeystore e:\file.p12 -sigalg sha256withRSA
解决方法
最可能的原因是您的 PFX 在内部使用了 Windows 10 中添加的新加密选项。
如果您通过 ASN.1 解码器(例如 https://lapo.it/asn1js/ 或 certutil -asn
命令)运行 PFX,您希望看到类似的内容
C:\>certutil -asn sample.pfx
0000: 30 82 0e a9 ; SEQUENCE (ea9 Bytes)
0004: 02 01 ; INTEGER (1 Bytes)
0006: | 03
0007: 30 82 0e 65 ; SEQUENCE (e65 Bytes)
000b: | 06 09 ; OBJECT_ID (9 Bytes)
000d: | | 2a 86 48 86 f7 0d 01 07 01
| | ; 1.2.840.113549.1.7.1 PKCS 7 Data
0016: | a0 82 0e 56 ; OPTIONAL[0] (e56 Bytes)
001a: | 04 82 0e 52 ; OCTET_STRING (e52 Bytes)
001e: | 30 82 0e 4e ; SEQUENCE (e4e Bytes)
0022: | 30 82 06 0f ; SEQUENCE (60f Bytes)
0026: | | 06 09 ; OBJECT_ID (9 Bytes)
0028: | | | 2a 86 48 86 f7 0d 01 07 01
| | | ; 1.2.840.113549.1.7.1 PKCS 7 Data
0031: | | a0 82 06 00 ; OPTIONAL[0] (600 Bytes)
0035: | | 04 82 05 fc ; OCTET_STRING (5fc Bytes)
0039: | | 30 82 05 f8 ; SEQUENCE (5f8 Bytes)
003d: | | 30 82 05 f4 ; SEQUENCE (5f4 Bytes)
0041: | | 06 0b ; OBJECT_ID (b Bytes)
0043: | | | 2a 86 48 86 f7 0d 01 0c 0a 01 02
| | | ; 1.2.840.113549.1.12.10.1.2 szOID_PKCS_12_PKCS8ShroudedKeyBag
004e: | | a0 82 04 fe ; OPTIONAL[0] (4fe Bytes)
0052: | | | 30 82 04 fa ; SEQUENCE (4fa Bytes)
0056: | | | 30 1c ; SEQUENCE (1c Bytes)
0058: | | | | 06 0a ; OBJECT_ID (a Bytes)
005a: | | | | | 2a 86 48 86 f7 0d 01 0c 01 03
| | | | | ; 1.2.840.113549.1.12.1.3 szOID_PKCS_12_pbeWithSHA1And3KeyTripleDES
0064: | | | | 30 0e ; SEQUENCE (e Bytes)
0066: | | | | 04 08 ; OCTET_STRING (8 Bytes)
(it keeps going)
也就是说,有一个 1.2.840.113549.1.12.10.1.2 (PKCS#12 PKCS8ShroudedKeyBag),其中包含一个项目 1.2.840.113549.1.12.1.3 (PKCS#12 pbeWithSHA1)。
我猜您的 PFX 有一个 PKCS8ShroudedKeyBag,其中包含一个项目 1.2.840.113549.1.5.13(基于密码的加密方案 2 / PBES2)...首先在 Windows 10 上受支持。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。