如何使用在另一台计算机上创建的X.509证书?

时间:2011-09-27 10:42:20

标签: certificate x509 makecert

我需要在一台计算机上使用x509证书加密XML文件,并能够在另一台计算机上使用相同的证书对其进行解密。它似乎对微软的建议不起作用:

http://msdn.microsoft.com/en-us/library/ms229744.aspx

另一台计算机上的解密过程总是失败!

我使用以下命令创建证书:

makecert -r -pe -n "CN=DEEP_201X" -b 01/01/2011 -e 01/01/2014 -sky exchange -ss my deep.cer

然后我使用:

安装它
certmgr /add deep.cer /s root

尝试使用FindPrivateKey.exe实用程序获取其私钥:

FindPrivateKey My CurrentUser -n "CN=DEEP_201X"

效果很好。但是,当我执行所有相同的操作以在另一台计算机上安装证书时,FindPrivateKey将失败

  

商店中找不到钥匙“CN = DEEP_201X”的证书。

当我使用

certmgr /add deep.cer /s my

错误信息将如下:

  

无法获取私钥文件名

有人可以就如何使其发挥作用给我一些建议吗?

1 个答案:

答案 0 :(得分:0)

我怀疑您只需要解密计算机上的私钥。

<强>然而...

如果您确实需要两台计算机上的私钥,请注意.cer文件不包含私钥。

(我认为)makecert在生成证书时将其添加到本地计算机。您可以使用-sv选项将其写出来。然后为包含它的证书构建一个pfx容器。

makecert -r -pe -sv myprivatekey.pvk -n "CN=DEEP_201X" -b 01/01/2011 -e 01/01/2014 -sky exchange -ss my deep.cer
pvk2pfx  -pvk myprivatekey.pvk -spc deep.cr -pfx deep_private.pfx

我无法说服certmgr从命令行导入私钥。在gui模式下使用它或使用certmgr.msc管理单元。