2014-09-02 196 views
0

我有两个密钥客户端证书和HttpWebRequest

a .PEM文件和一个.KEY文件。 pem密钥采用X509格式。

我从提供者(我已发送给提供者.csr)获得pem文件。

我即将通过使用Microsoft Visual C#.NET中的HttpWebRequest和HttpWebResponse类发送客户端证书。

对于我已经在Windows中使用MMC工具registret在Windows 2003的服务器的PEM文件:

1)单击开始,单击运行,键入mmc,然后单击确定。 2)在文件菜单上,单击添加/删除管理单元。 3)在“添加/删除管理单元”对话框中,单击“添加”。 4)在“添加独立管理单元”对话框中,单击“证书”,然后单击“添加”。 5)在“证书管理单元”对话框中,单击“计算机帐户”,然后单击“下一步”。 6)在“选择计算机”对话框中,单击“完成”。 7)在“添加独立管理单元”对话框中,单击“关闭”,然后单击“确定”。 8)展开证书(本地计算机),展开个人,然后单击证书。

我然后导入pem文件(也用mmc)。

问题是: 如何授予证书许可?

我曾经尝试这样做(WinHttpCertCfg.exe工具):

winhttpcertcfg -l -c LOCAL_MACHINE\Root -s NON-Production.pem 

并且怎么样.KEY文件?

回答

0

下载XCA。这是一个建立在openssl之上的应用程序,它可以帮助你从.key文件和.pem文件创建一个p12文件。很简单。导入.key文件私钥选项卡。导入.pem文件证书选项卡。然后在证书选项卡导出证书PKCS#12(组合框导出格式)。根据需要设置密码或保留空白。然后你可以用你写的mmc导入这个.p12文件。

现在您可以使用winhttpcertcfg设置私钥的权限。 This文档将帮助你。 (参数-s表示主题,在mmc中打开导入的证书并在主题字段中查找CN = 东西,然后将此加上与-s参数)。

+0

它看起来很有趣。我会尝试。 也许你可以进一步帮助我。 我基本上来自一家公司的curl,必须转换为.NET。 卷曲-k -v -X GET “https://FIRMA.com/api/Status?q=AAA&userId=BBB” --cert recieved_key.pem --key myselfgenerated.key 后,我做了什么你描述一下,下一步是使用这个命令发送一个带有新的.p12文件的https请求吗?X509Certificate cert = X509Certificate.CreateFromCertFile(“d:\\ cert \\ abc.p12”); 这样的事情: http:// www。codeproject.com/Articles/28395/Attaching-a-digital-certificate-public-key-to-an-H – Henrik 2014-09-03 09:16:47

+0

它应该以这种方式使用'X509Certificate2 cert = new X509Certificate2(“d:\\ cert \\ abc.p12 “,”密码“);'。如果您有空白密码,则使用空字符串作为密码。 – pepo 2014-09-03 10:29:23

+0

现在一切正常。我很感激。非常感谢。 – Henrik 2014-09-04 12:05:59