WSHttpBinding 経由で Web サービスを使用するときに使用する SSL プロトコルのバージョンを指定することはできますか?
クライアント証明書を使用した SSL 経由の Web サービスへの呼び出しが失敗した理由を特定するために、トレース ログを使用しています。
最後のログには、アラートと、unexpected_error である15 03 01 00 02
アラート コードが表示されます。02 0A
このエラーは、サーバーがスローしている SSL のバージョンを処理できないことが原因であると思われます。
System.Net.Sockets Verbose: 0 : [13908] Exiting Socket#15927457::Send() -> Int32#138
System.Net.Sockets Verbose: 0 : [13908] Socket#15927457::Receive()
System.Net.Sockets Verbose: 0 : [13908] Data from Socket#15927457::Receive
System.Net.Sockets Verbose: 0 : [13908] 00000000 : 15 03 01 00 02 : .....
System.Net.Sockets Verbose: 0 : [13908] Exiting Socket#15927457::Receive() -> Int32#5
System.Net.Sockets Verbose: 0 : [13908] Socket#15927457::Receive()
System.Net.Sockets Verbose: 0 : [13908] Data from Socket#15927457::Receive
System.Net.Sockets Verbose: 0 : [13908] 00000005 : 02 0A : ..
System.Net.Sockets Verbose: 0 : [13908] Exiting Socket#15927457::Receive() -> Int32#2
System.Net Information: 0 : [13908] InitializeSecurityContext(credential = System.Net.SafeFreeCredential_SECURITY, context = 79d80e8:7a0e230, targetName = dsl-wholesale-testing.iinet.net.au, inFlags = ReplayDetect, SequenceDetect, Confidentiality, AllocateMemory, InitManualCredValidation)
System.Net Information: 0 : [13908] InitializeSecurityContext(In-Buffers count=2, Out-Buffer length=0, returned code=IllegalMessage).
System.Net.Sockets Verbose: 0 : [13908] Socket#15927457::Dispose()
System.Net Error: 0 : [13908] Exception in HttpWebRequest#41613110:: - The request was aborted: Could not create SSL/TLS secure channel..
System.Net Error: 0 : [13908] Exception in HttpWebRequest#41613110::GetResponse - The request was aborted: Could not create SSL/TLS secure channel..
同じ Web サービスで動作する PHP ベースのクライアントがあり、cURL ( curl_setopt($ch, CURLOPT_SSLVERSION, 3);
) で SSL バージョン 3 を指定しています。