私はMicrosoftがKB4019276 - https://support.microsoft.com/en-us/help/4019276/update-to-add-support-for-tls-1-1-and-tls-1-2-in-windowsをリリースした後にWindows XP POSReadyでTLS 1.2を使用しようとしており、それをレジストリで有効にしています。XP POSReadyとTLS 1.2
それをテストするために私の非常に簡単なコードは次のとおりです。
Option Explicit
Const WinHttpRequestOption_SecureProtocols = 9
Const SecureProtocol_SSL2 = 8, SecureProtocol_SSL3 = 32, _
SecureProtocol_TLS1 = 128, SecureProtocol_TLS1_1 = 512, _
SecureProtocol_TLS1_2 = 2048
Dim objHTTP
Set objHTTP = CreateObject("WinHttp.WinHttprequest.5.1")
objHTTP.open "GET", "https://www.howsmyssl.com/a/check", False
objHTTP.Option(WinHttpRequestOption_SecureProtocols) = SecureProtocol_TLS1_2
objHTTP.Send
If objHTTP.WaitForResponse(30) Then 'wait up to 30 seconds
WScript.Echo "Status : " & objHTTP.Status & "<br />"
WScript.Echo "Response Length : " & LenB(objHTTP.ResponseBody)
WScript.Echo "Response Text : " & objHTTP.ResponseText
Else
WScript.Write "Request timed out"
End If
Set objHTTP = Nothing
が、TLS 1.0を超えるものは私にエラーを与えている:、
Invalid argument for Option
しばらくSSL 2.0を無効化、SSL 3.0およびTLS 1.0 I '私はセキュリティプロトコルを交渉できないというエラーが出てきました。
アドバイスはありますか?
ありがとうございます。
以前のServer 2008と古いWindows 7にも同様の問題がありました。ちょうどここを見てください:https://social.msdn.microsoft.com/Forums/windowsserver/en-US/97e37a88-f7f8-424a-b8bd-e089f1bbea84/upgrade-winhttpdll-version-to-support-tls-11-and- tls-12-windows-2008-r2-and-windows-7?forum = winserver2008appcompatabilityandcertification。この問題は今Windows XPのために類似しているようです(おそらくembeddedXP 2009とPOSReadyはこの機能をサポートするためにwinhttp.dllをアップグレードしましたが、正規のXPは明らかにそうではありませんでした) –
XP用のアップグレードされたDLLはありません。代わりに、正しく設定するためにレジストリに追加の設定があります。 KB3140245を参照してください。 https://support.microsoft.com/en-in/help/3140245また、私は、XPの最新のSCHANNEL.DLLには、\ Cryptographyブランチで作成されるレジストリエントリの新しい行への参照が参照されていることが分かっていますこれらに(窓7のものと非常に類似しています)。 –
私はすでに成功なしで両方を試しました。 XP PosReadyのサポートは完全ではないようです。 – Bandimon