我在 Windows Server 2016 上安装证书时遇到一个已知问题,导致出现以下异常: System.Security.Cryptography.CryptographicException:指定的提供程序类型无效。并且没有可用于已安装证书的私钥。然后我尝试在这篇文章的帮助下基于旧的 pfx 重新创建一个新的 pfx:
尝试加载证书私钥时出现“指定的提供程序类型无效”CrypgraphicException
以及以下命令:
OpenSSL pkcs12 -in "cert_name.p12" -nokeys -out "cert_name.cer" -passin "pass:123456"
OpenSSL pkcs12 -in "cert_name.p12" -nocerts -out "cert_name.pem" -passin "pass:123456" -passout "pass:123456"
OpenSSL rsa -inform PEM -in "cert_name.pem" -out "cert_name.rsa" -passin "pass:123456" -passout "pass:123456"
OpenSSL pkcs12 -export -in "cert_name.cer" -inkey "cert_name.rsa" -out "cert_name_converted.p12" -passin "pass:123456" -passout "pass:123456"
但是,当尝试安装/导入
cert_name_converted.p12
时,使用“-passout
”参数中提到的密码,密码似乎不正确。
任何人都可以建议我可能做错了什么吗?
根据您的描述,当您将此.pfx文件导入到Windows服务器时,输入密码后收到错误消息 – 您输入的密码不正确。这个错误非常具有误导性。
通常,此错误的原因是您用于生成证书的 OpenSSL 版本。这是因为 Windows Server 支持使用 OpenSSL 1.1.1 或更低版本生成的证书。您可以通过打开 OpenSSL 命令提示符并键入以下命令来检查 OpenSSL 的版本:
openssl version
如果您的 OpenSSL 是更高版本,您可以从此链接下载 OpenSSL 1.1.1。安装 OpenSSL 1.1.1 后,重新生成 .pfx 文件。这次当你将文件导入 Windows 服务器时,它就可以正常工作了。