簡體   English   中英

無法為SOAP調用建立SSL / TLS的安全通道

[英]Could not establish secure channel for SSL/TLS for SOAP call

我們的核心服務器通過https在多個不同的服務器上調用soap Web服務,以確認事務已完成。

代碼是dotnet 3.5(vb),適用於我們設置的各種回調服務,直到我們將新的服務轉移到生產環境中並拒絕通信,給出以下錯誤:

Unhandled Exception: System.ServiceModel.Security.SecurityNegotiationException:
Could not establish secure channel for SSL/TLS with authority 'www.xyzzy.com'.
---> System.Net.WebException: The request was aborted: Could not create SSL/TLS secure channel.
at System.Net.HttpWebRequest.GetResponse()
at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)

相關的代碼片段似乎是:

Dim epAddr As New System.ServiceModel.EndpointAddress(sys.CallbackAddress)
Dim bind As New System.ServiceModel.BasicHttpBinding(ServiceModel.BasicHttpSecurityMode.Transport)

_svc = New CallbackSvc.XyzzyCallbackSoapClient(bind, epAddr)

從我的個人筆記本電腦(WinXP),我可以運行代碼,它連接到新服務器沒有問題。

從主服務器(調用所有回調服務)(Windows Server Enterprise Service Pack 1),代碼始終導致上述SSL錯誤。

谷歌搜索后,我嘗試添加以下行(當然不適合生產,但我想測試):

System.Net.ServicePointManager.ServerCertificateValidationCallback = Function(se As Object, cert As System.Security.Cryptography.X509Certificates.X509Certificate, chain As System.Security.Cryptography.X509Certificates.X509Chain, sslerror As System.Net.Security.SslPolicyErrors) True

結果是一樣的。 SSL錯誤仍然發生。

其他地方建議根證書沒有在呼叫機器上正確安裝,但新服務器和舊回調服務器都使用Go Daddy頒發的證書,所以我不認為這是這種情況。

結果是生產“核心”服務器(調用服務的服務器)和目標服務器(托管服務)之間的交互不共享可接受的https算法。 wfetch在診斷問題時非常有幫助。

事實證明,目標服務器未設置為接受TLS 1.0,僅接受SSL 3.0。

顯然,在Windows 2008 Server中發生了一些變化,這意味着出站https連接只能使用TLS 1.0(或者更好,可能是)來接受。

在我們的示例中,當目標服務器上的配置更改為接受TLS時,問題已得到解決。 感覺應該有一種方法來改變我的程序以強制它使用SSL,但我還沒有找到它。

在客戶端,嘗試:

ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;

我得到了同樣的錯誤“無法為權限'www.xyzzy.com'建立SSL / TLS的安全通道。” 將包含所需客戶端證書的現有應用程序從一個服務器移動到另一個服 導致新服務器出現問題的原因是IIS用戶(在本例中為“IIS_WPG”)對剛剛移動到新服務器的證書沒有讀取和執行權限。 可以使用wsetools更改證書訪問權限。 /斯特凡

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM