我正在VB6中编写一个客户端程序,它将通过HTTP与服务器连接。 运行服务器的公司为我提供了一个名为SomeCertificate.p12的证书文件。
我的程序在Windows XP上运行。这是客户使用的操作系统。
我试图在向服务器发送请求时找到如何使用此证书。
这是我到目前为止所做的:
从命令提示符处运行以下命令:
“winhttpcertcfg -i SomeCertificate.p12 -c LOCAL_MACHINE \ My -a COMPUTERNAME \ USERNAME -p PasswordFromServerCompany”
输出是这样的。我用虚拟字符串替换了不同的标记:
导入证书:
CN =字符串1
OU =字符串2
O = STRING3
L =串,4
C = STRING5
帐户已授予私钥访问权限: COMPUTERNAME \ USERNAME
我的VB6代码如下所示:
Private WithEvents m_ServerObj As WinHttpRequest 设置m_ServerObj = New WinHttpRequest m_ServerObj.Open“GET”,“https://serveraddress”
调用m_ServerObj.SetClientCertificate(“LOCAL_MACHINE \ Personal \ SomeCertificate”)
m_ServerObj.Send TextToSend
发送呼叫会导致异常: “需要证书才能完成客户端身份验证”
我在SetClientCertificate调用中尝试了不同的字符串但是我一直收到同样的错误。
我很感激任何帮助和提示。我究竟做错了什么?我的代码错了吗?我是否错误地使用了winhttpcertcfg?
谢谢。答案 0 :(得分:0)
服务器公司发给我一个.PEM证书进行安装。一旦我这样做,问题就解决了。 谢谢。