证书颁发机构无效或不正确

时间:2013-10-23 10:29:22

标签: rest asp-classic

之前已经从asp调用了许多休息服务 - 但这个让我难过。 首先我的func看起来像

Set objHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP") 
with objHTTP 
.open "post", x_posturl, False 
.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
.send x_xmlstr
end with

,返回的错误是

  

msxml3.dll错误'80072f0d'证书颁发机构无效或   不正确

所以,google了一下,建议是添加行

.setOption 2, 13056

这会给出错误

  

msxml3.dll错误'80072f0c'需要证书才能完成   客户端身份验证

然后我联系了服务供应商,他们建议

  

单击地址栏旁边的证书错误,查看   证书,选择详细信息,选择复制到文件,然后将其下载到   文件。将其安装到服务器上的受信任证书中   尝试提交数据时停止出现错误。

所以,尝试使用说明here - 但仍然没有快乐,任何帮助赞赏

2 个答案:

答案 0 :(得分:2)

位于x_posturl的服务器似乎配置了错误的证书,或者您的客户端计算机不包含/识别(最可能是)证书的根权限。有几个选项可以解决:

  1. 如果证书配置错误,请他们修复他们的证书。
  2. 如果他们的证书有效,但是具有您的计算机无法识别的root用户权限,则需要在本地安装root用户权限证书。
  3. 指示MSXML2.ServerXMLHTTP忽略证书错误,这里似乎可以回答:this spline example
  4. x_posturl更改为以http://开头,而不是https://(如果提供商支持)。不过,在生产场景中不建议这样做。

您能具体分享x_posturl是什么吗?我们应该能够通过查看SSL握手进行调试。

答案 1 :(得分:0)

我能够通过传递参数来找到解决方案。

objHTTP.SetOption 2,objHTTP.GetOption(2)

Dim objHTTP
Set objHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP")
objHTTP.SetOption 2, objHTTP.GetOption(2)
objHTTP.Open "post", x_posturl, False 
objHTTP.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objHTTP.Send x_xmlstr