导入PFX到IIS Windows Server 2016 - 指定的网络密码不正确。

6
我正在使用openssl将从Godaddy购买的证书转换为可在IIS Windows 2016上使用。我使用的转换命令如下,我按Enter键不输入密码。我还尝试输入简单和复杂的密码,但仍然出现相同的错误。
openssl pkcs12 -export -out website.pfx -inkey private.key -in a01f36fe692456.crt -certfile gd_bundle-g2-g1.crt

在将内容导入到Windows Server 2016的IIS时,会出现“指定的网络密码不正确”的错误。为了排除故障,我尝试了相同的导入操作,但可以成功地将其导入到Windows Server 2019上。想知道如何为Windows 2016、IIS v10生成pfx文件?谢谢。

enter image description here


你可以尝试使用命令行吗?https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/certutil#-importpfx 它可能会提供更详细的错误消息。 - Lex Li
1
通常,在IIS中选择“完成证书请求...”(来自您的GoDaddy CA响应)时,您会看到一个复选框选项:“允许导出此证书”。如果您允许导出,则只需从IIS服务器上的Windows证书存储中导出证书即可创建PFX(PKCS#12)文件。导出PFX后,您可以将其简单地导入其他Windows服务器。无需OpenSSL。 - leeharvey1
顺便提一下,如果您是在OpenSSL中生成私钥和CSR,请尝试在OpenSSL命令行中添加“-keyex”和“-CSP“Microsoft Enhanced Cryptographic Provider v1.0”选项。如果您导出的PFX不需要密码,请添加“-nodes”;否则,请定义您的“-passin pass:privatekeypwd”和“-passout pass:pfxpwd”选项。 - leeharvey1
您试过输入简单和复杂的密码吗?当您从Godaddy获取这个证书时,是否要求输入任何密码或密钥? - Bruce Zhang
6个回答

13

我已经使用openssl创建文件并通过IIS使其工作;如果您将其导入到本地用户证书存储中然后导出它,则可以正常工作。我使用以下方法比较了导出的pfx文件和openssl pfx文件:

openssl pkcs12 -in website.pfx -info

MAC 是使用 openssl 版本的 sha256,与出口版本的 SHA1 相比。因此,我在 OpenSSL 命令中添加了 -macalg SHA1
私钥的 PKCS7 数据在 OpenSSL 版本上是 PBES2、PBKDF2、AES-256-CBC,与出口版本的 pbeWithSHA1And3-KeyTripleDES-CBC 相比。因此,我在 OpenSSL 命令中添加了 -keypbe PBE-SHA1-3DES
证书的 PKCS7 加密数据也是同样的情况,因此我也在 OpenSSL 命令中添加了 -certpbe PBE-SHA1-3DES
最终,我运行的命令是可以成功导入到 IIS 的文件。
openssl pkcs12 -macalg SHA1 -keypbe PBE-SHA1-3DES -certpbe PBE-SHA1-3DES -export -out website.pfx -inkey private.key -in a01f36fe692456.crt -certfile gd_bundle-g2-g1.crt

2
以上答案对我有用:`openssl pkcs12 -macalg SHA1 -keypbe PBE-SHA1-3DES -certpbe PBE-SHA1-3DES -export -out website.pfx -inkey private.key -in a01f36fe692456.crt -certfile gd_bundle-g2-g1.crt` - McKibet
1
谢谢,我也遇到了同样的问题,这个方法对我很有用。 - Richard McKenna

3
在我的情况下,问题出在 PFX 文件本身的加密算法上。Windows 告诉我们密码无效是因为它没有使用正确的算法。
只需在 openssl 中添加 -legacy 选项即可让其使用以前的算法。 openssl pkcs12 -export -legacy -out website.pfx ... 我在 openssl-pkcs12 文档 中找到了解决方案。

1
太棒了!比目前得到最多赞的答案更简单的解决方案。 - undefined

3
当我尝试在我的服务器(WS 2016 Standard)上导入pfx文件时,遇到了同样的问题,以上所有选项都没有对我起作用。
我甚至尝试使用证书和私钥再次生成pfx,但它仍然拒绝密码。为了能够在服务器上导入证书,我不得不执行以下操作:
1.将证书导入到我的本地计算机(W10 Enterprise)中,并标记为可导出。
2.从我的本地计算机导出pfx。
3.在服务器(WS 2016 Standard)中导入导出的pfx文件。
似乎这是与Windows的兼容性问题有关,但我不确定真正的问题是什么以及导入和导出如何解决它。

1

我在 Windows Server 2016 上遇到了这个问题。我尝试使用以下命令导出新的 PFX 文件。

openssl pkcs12 -keypbe PBE-SHA1-3DES -certpbe PBE-SHA1-3DES -export -legacy -out domain.com.pfx -inkey domain.decrypted.key -in your.crt


这并没有真正回答这个问题。如果你有其他问题,可以点击提问来提出。如果你想在这个问题有新的回答时收到通知,你可以关注此问题。一旦你获得足够的声望,你也可以添加悬赏以吸引更多关注。- 来自审核 - Ram Chander
你的回答目前写得不清楚。请编辑以添加更多细节,帮助其他人理解如何回答所提出的问题。你可以在帮助中心找到关于如何撰写好回答的更多信息。 - Community

0
我试图在Windows Server 2016上的IIS上导入我的.pfx文件,但遇到了相同的错误。
我不得不在我的个人电脑(W11 Pro)上导入它,然后使用私钥导出它(以创建.pfx文件),从列表中选择传统加密的TripleDES-SHA1。
您也可以在使用OpenSSL创建.pfx文件时使用-legacy属性来完成此操作。

0

这对我来说也可以工作,但这绝不是正确的解决方案,我认为... 3des-sha1已经被黑客攻击了很长时间...

查看使用此openssl命令创建的pfx文件:

MAC:sha1,迭代2048 MAC长度:20,盐长度:8 PKCS7加密数据:pbeWithSHA1And3-KeyTripleDES-CBC,迭代2048 Shrouded Keybag:pbeWithSHA1And3-KeyTripleDES-CBC,迭代2048

原始无法工作的pfx:

MAC:sha256,迭代2048 MAC长度:32,盐长度:8 PKCS7加密数据:PBES2,PBKDF2,AES-256-CBC,迭代2048,PRF hmacWithSHA256 Shrouded Keybag:PBES2,PBKDF2,AES-256-CBC,迭代2048,PRF hmacWithSHA256

如何导入具有sha256的正常加密..


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接