如何在 Windows XP 中导入带有私钥的证书 (pfx)

如何在 Windows XP 中导入带有私钥的证书 (pfx)

我花了一整天的时间尝试在 Windows XP 中导入证书,但总是失败。我做了以下操作:

  1. 使用私钥创建证书(无密码):

    makecert -sr LocalMachine -ss My -pe -sky exchange -n “CN=TestCert” -a sha1 -sv TestCert.pvk TestCert.cer
  2. 然后将证书和私钥一起放入一个pfx文件中:

    pvk2pfx.exe -pvk 测试证书.pvk -spc 测试证书.cer -pfx 测试证书.pfx
  3. 使用命令行工具导入pfx文件(德语系统):

    winhttpcertcfg.exe -I TestCert.pfx -a NT-AUTORITÄT\NETZWERKDInternet ExplorerNST -c LOCAL_MACHINE\My
    错误:无法导入 PFX 文件的内容。
        请确保文件名和路径,
        以及密码都是正确的。

    提示:“NT-AUTORITÄT\NETZWERKDInternet ExplorerNST”-->“NT-AUTHORITY\NETWORKSERVICE”
    文件名正确,但未设置密码。即使我在步骤 1 中设置了密码(例如“MyPassword”),并在步骤 3 结束时输入:

    ...-p 我的密码

我遇到了同样的错误。然后我尝试在证书控制台(带有证书管理单元的 mmc)中导入。我收到以下错误:“由于您导入了私人凭据,因此系统会要求提供一些服务,因此无法安装。” --> “导入的私钥可能需要未安装的服务供应商”。但是 Microsoft 加密服务已启动并运行。

我还能做什么?
在 Windows Vista 和 Windows 7 上,我运行它时没有遇到这些问题。
我需要此证书来运行 WCF 服务。

答案1

同时,我也找到了问题的原因。

在尝试导入带有私钥的证书的前几天,我更改了存储私钥的位置的目录访问权限。我做了以下事情:

cacls "C:\Dokumente und Einstellungen\All Users\Anwendungsdaten\Microsoft\Crypto\RSA\MachineKeys" /E /G "NT-AUTORITÄT\NETZWERKDIENST":R

此后,我再也无法导入包含私钥的证书。一旦我撤销此特定访问权限,证书导入即可正常进行。

我不明白,为什么增加访问权限实际上会导致访问权限减少。

不过,我希望这可以帮助遇到同样问题的人。

相关内容