无法通过使用 MSXML2.ServerXMLHTTP 的 SHA2 证书的 HTTPS 连接到服务器
Can't connect to server over HTTPS which uses a SHA2 certificate using MSXML2.ServerXMLHTTP
我们将 SSL 证书更新为 SHA2,但中间证书为 SHA1。 Chrome 和其他浏览器已经决定整个链必须是 SHA2。我们的客户打电话担心地址栏中的黄色警告。有传言说几个月后 Chrome 和其他浏览器将用停止屏幕取代温和不显眼的警告。我们当然不希望那样!
...
所以我们重新颁发了证书,新证书由 SHA2 中间体签名。当我们使用该证书加密我们服务器上的流量时,我们使用 MSXML2.ServerXMLHTTP(运行 on Windows Server 2003)访问该服务器上的远程 Web 服务的应用程序无法再连接.
经过研究,我们应用了这两个看起来可以解决问题的修补程序:
https://support.microsoft.com/kb/938397/en-us
https://support.microsoft.com/kb/968730/en-us
但问题依旧。将证书切换回 SHA2 和 SHA1 中间体,我们没有问题。
我们已经在受信任的存储中安装了中间 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
您的情况很可能与此相同post,特别是您提到脚本的最后一个答案已经 运行 10 多年了。
完整引用最后一个答案:
I know it is an old question. This issue could be because of
unsupported cipher suites. Try adding - TLS_RSA_WITH_AES_128_CBC_SHA
AES128-SHA - TLS_RSA_WITH_AES_256_CBC_SHA AES256-SHA
That means you have to follow this kb:
http://support.microsoft.com/kb/948963 This update is also interesting
if you are still using windows 2003. Which will allow connecting to
site using SHA2 - http://support.microsoft.com/kb/968730
Please note that Windows Server 2003 support is ending July 14, 2015
如果代码是 运行 在 Windows Server 2003 上,我建议您在较新的机器上尝试,也许是 Windows 7 的笔记本电脑进行快速测试。
我们将 SSL 证书更新为 SHA2,但中间证书为 SHA1。 Chrome 和其他浏览器已经决定整个链必须是 SHA2。我们的客户打电话担心地址栏中的黄色警告。有传言说几个月后 Chrome 和其他浏览器将用停止屏幕取代温和不显眼的警告。我们当然不希望那样!
...
所以我们重新颁发了证书,新证书由 SHA2 中间体签名。当我们使用该证书加密我们服务器上的流量时,我们使用 MSXML2.ServerXMLHTTP(运行 on Windows Server 2003)访问该服务器上的远程 Web 服务的应用程序无法再连接.
经过研究,我们应用了这两个看起来可以解决问题的修补程序:
https://support.microsoft.com/kb/938397/en-us https://support.microsoft.com/kb/968730/en-us
但问题依旧。将证书切换回 SHA2 和 SHA1 中间体,我们没有问题。
我们已经在受信任的存储中安装了中间 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
您的情况很可能与此相同post,特别是您提到脚本的最后一个答案已经 运行 10 多年了。
完整引用最后一个答案:
I know it is an old question. This issue could be because of unsupported cipher suites. Try adding - TLS_RSA_WITH_AES_128_CBC_SHA AES128-SHA - TLS_RSA_WITH_AES_256_CBC_SHA AES256-SHA
That means you have to follow this kb: http://support.microsoft.com/kb/948963 This update is also interesting if you are still using windows 2003. Which will allow connecting to site using SHA2 - http://support.microsoft.com/kb/968730
Please note that Windows Server 2003 support is ending July 14, 2015
如果代码是 运行 在 Windows Server 2003 上,我建议您在较新的机器上尝试,也许是 Windows 7 的笔记本电脑进行快速测试。