【问题标题】:Can't connect to server over HTTPS which uses a SHA2 certificate using MSXML2.ServerXMLHTTP无法通过 HTTPS 连接到使用 MSXML2.ServerXMLHTTP 的 SHA2 证书的服务器
【发布时间】:2015-01-23 16:26:26
【问题描述】:

我们将 SSL 证书更新为 SHA2,但中间证书是 SHA1。 Chrome 和其他浏览器已经决定整个链必须是 SHA2。我们的客户打电话来担心地址栏中的黄色警告。有传言称,在几个月后,Chrome 和其他浏览器将用停止屏幕取代温和不显眼的警告。我们当然不希望这样!

...

所以我们重新颁发了证书,新的证书由 SHA2 中间人签名。当我们使用该证书加密服务器上的流量时,使用 MSXML2.ServerXMLHTTP(在 Windows Server 2003 上运行)访问该服务器上的远程 Web 服务的应用程序无法再连接。

经过研究,我们应用了这两个似乎可以解决问题的修补程序:

https://support.microsoft.com/kb/938397/en-us https://support.microsoft.com/kb/968730/en-us

但问题仍然存在。将证书切换回带有 SHA1 中间的 SHA2,我们没有问题。

我们已在受信任的存储中安装了中间 SHA2 证书,但问题仍然存在。

我们已尝试指定 MSXML2.ServerXMLHTTP 的所有版本,但都失败了。

ASP 代码:

function query(xml)

    dim xmlhttp, xmlDoc, url

    url = application("component_url")

    set xmlhttp = server.createobject("MSXML2.ServerXMLHttp")
    call xmlhttp.open ("POST", url, false)
    call xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")

    on error resume next
        err.clear   

        call xmlhttp.send(xml)

        if err.number <> 0 then
            call sendAlert("An error has occurred while trying to send your request", message)
        else
            dim rt
            rt = ConvertUtf8BytesToString(xmlhttp.responseBody)
            set xmlDoc = server.createobject("MSXML2.DomDocument")          
            xmlDoc.loadXml(rt)
        end if
    on error goto 0

    set query = xmlDoc
    set xmlHttp = nothing
    set xmlDoc = nothing
end function

【问题讨论】:

  • 你给我们看一些代码怎么样?
  • 什么,你的意思是代码在你关闭远程服务器上的证书之前可以正常工作?当然......没有问题:
  • 当然,仅仅因为它之前工作过并不意味着证书有问题。在我们看到一些代码之前,没有太多可以建议的。
  • 查看主帖的编辑。这段代码已经运行了至少十年,当我们换掉远程服务器上的证书时,它就坏了。当我们将其切换回来时,它就可以工作了。
  • 证书切换后出现的具体错误是什么?如果不是错误,HTTP 状态码是什么?

标签: ssl asp-classic windows-server-2003 msxml serverxmlhttp


【解决方案1】:

您的情况很可能与post 相同,特别是您提到脚本已运行 10 年以上的最后一个答案。

完整引用最后一个答案:

我知道这是一个老问题。这个问题可能是因为 不受支持的密码套件。尝试添加 - TLS_RSA_WITH_AES_128_CBC_SHA AES128-SHA - TLS_RSA_WITH_AES_256_CBC_SHA AES256-SHA

这意味着你必须遵循这个知识库: http://support.microsoft.com/kb/948963这个更新也有意思 如果您仍在使用 Windows 2003。这将允许连接到 使用 SHA2 的站点 - http://support.microsoft.com/kb/968730

请注意,Windows Server 2003 支持将于 2015 年 7 月 14 日结束

如果代码在 Windows Server 2003 上运行,我建议您在较新的机器上尝试一下,也许是装有 Windows 7 的笔记本电脑以进行快速测试。

【讨论】:

    猜你喜欢
    • 2020-01-15
    • 1970-01-01
    • 2016-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-10
    相关资源
    最近更新 更多