![Windows 证书导入不接受私钥密码](https://linux22.com/image/776116/Windows%20%E8%AF%81%E4%B9%A6%E5%AF%BC%E5%85%A5%E4%B8%8D%E6%8E%A5%E5%8F%97%E7%A7%81%E9%92%A5%E5%AF%86%E7%A0%81.png)
我正在尝试按照这里提供的说明进行操作:https://codekabinett.com/rdumps.php?Lang=2&targetDoc=create-install-ssl-tls-certificate-sql-server用于设置用于测试的自签名证书。我能够成功创建证书和密钥并将它们转换为 .pfx 文件。现在,我正尝试使用证书导入向导将该 pfx 实际导入本地计算机。选择文件后,它会要求输入私钥的密码。我认为这是创建证书时或转换为 pfx 时选择的密码。无论哪种方式,它都不会接受密码。我仔细检查以确保我没有输入错误。我删除了所有文件并使用相同的密码重新创建了它们。仍然被拒绝。此时,我不确定还能尝试什么。我在这里遗漏了什么?
仅供参考,以下是我用来生成文件的命令:
openssl req -x509 -newkey rsa:4096 -keyout C:\Users\pbuchheit\sqlkey.pem -out c:\Users\pbuchheit\sqlcert.pem -days 3650 -extensions server_ssl
openssl pkcs12 -export -out C:\Users\pbuchheit\sqlcert.pfx -inkey C:\Users\pbuchheit\sqlkey.pem -in C:\Users\pbuchheit\sqlcert.pem
更新:
问题似乎与 pfx 文件有关。如果我尝试不安装普通证书 (.crt) 文件,它就可以正常工作。将 crt 和密钥转换为 pfx 时,密码会被删除或更改吗?
答案1
我终于在这里找到了答案:https://stackoverflow.com/a/70369871/1860222。显然,导入向导给出了垃圾反馈,问题与密码无关。事实证明,openssl 默认采用与 Windows 10 不兼容的加密。一旦我明确将 pfx 的加密设置为 Windows 可以处理的加密,导入就可以正常工作。
最终的命令如下所示:
openssl pkcs12 -export -certpbe PBE-SHA1-3DES -keypbe PBE-SHA1-3DES -nomac -out C:\Users\pbuchheit\turadev.pfx -inkey C:\Users\pbuchheit\turadev.key -in C:\Users\pbuchheit\turadev.crt