Winhttp和p12证书
我正在写一个VB6中的客户端程序,它将通过HTTP连接到服务器。 运行服务器的公司提供了一个名为SomeCertificate.p12的证书文件。Winhttp和p12证书
我的程序在Windows XP上运行。这是客户正在使用的操作系统。
我试图找到如何使用此证书发送请求到服务器。
这是我迄今所做的:
- 复制的证书文件到我的测试计算机。
- 使用Internet Explorer V8,我做了“工具| Internet选项|内容|证书|受信任的根机构”并导入了证书。
- 安装了winhttpcertcfg工具。
-
冉从命令提示符下:
“winhttpcertcfg -i SomeCertificate.p12 -c LOCAL_MACHINE \我的-a计算机名\用户名-p PasswordFromServerCompany”
输出成这个样子了。我替换虚设串不同的令牌:
进口证书:
CN =字符串1
OU =字符串2
O = STRING3
L =串,4
C = string5
私钥访问h如已经授予帐户: 计算机名\ USERNAME
-
我的VB6的代码看起来是这样的:
私人WITHEVENTS m_ServerObj作为WinHttpRequest 集m_ServerObj =新WinHttpRequest m_ServerObj 。开 “GET”, “https://serveraddress”
呼叫m_ServerObj.SetClientCertificate( “LOCAL_MACHINE \个人\ SomeCertificate”)
m_ServerObj.Send TextToSend
发送调用导致异常: “证书才能完成客户端身份验证”
我在SetClientCertificate呼叫尝试不同的字符串,但我不断收到同样的错误。
我会很感激任何帮助和提示。我究竟做错了什么?我的代码错了吗?我错误地使用了winhttpcertcfg吗?
谢谢。
服务器公司向我发送了一个.PEM证书进行安装。一旦我做到了,问题就解决了。 谢谢。
我现在正在使用VB6的事实应该没关系。该程序使用Windows winhttp.dll,一个COM对象。我可以使用C++,但仍然有同样的问题。 – yaronkl