沒法爲SSL / TLS安全通道創建信任關係 - SOAP

我有一個簡單的Web服務調用,由.NET(C#)2.0 Windows應用程序經過Visual Studio生成的Web服務代理生成,用於也用C#(2.0)編寫的Web服務。 這已經工做了幾年,而且在它運行的十幾個地方繼續這樣作。 安全

新站點的新安裝遇到問題。 嘗試調用Web服務時,它失敗並顯示如下消息: 服務器

沒法爲SSL / TLS安全通道創建信任關係 網絡

Web服務的URL使用SSL(https://) - 但這已經在不少其餘位置工做了很長時間(而且仍在繼續)。 dom

我在哪裏看? 這多是Windows和.NET之間的安全問題嗎? 若是是這樣,我在哪裏創建信任關係? 我迷路了! 測試


#1樓

盧克寫了一篇關於這篇文章的至關不錯的文章..很是直截了當..試一試 url

盧克的解決方案 spa

緣由(引用他的文章(減去詛咒))「..上面代碼的問題是,若是你的證書無效,它就不起做用。爲何我要發佈到一個有無效SSL證書的網頁呢?由於我很便宜並且我不想支付Verisign或者其餘** - * s用於個人測試盒的證書,因此我本身簽了。當我發出請求時,我獲得了一個可愛的例外: 代理

System.Net.WebException 底層鏈接已關閉。 沒法與遠程服務器創建信任關係。 code

我不瞭解你,但對我來講,異常看起來像是因爲個人代碼中的一個愚蠢的錯誤致使POST失敗。 因此我一直在搜索,調整和作各類奇怪的事情。 只有在我搜索了***以後,才發現遇到無效SSL證書後的默認行爲是拋出這個異常。 ..」 ssl


#2樓

我剛遇到這個問題。 個人決心是經過手動同步到時間服務器來更新系統時間。 爲此,您能夠:

  • 右鍵單擊任務欄中的時鐘
  • 選擇Adjust Date/Time
  • 選擇「 Internet Time選項卡
  • 單擊Change Settings
  • 選擇Update Now

在個人狀況下,這是正確同步因此我必須屢次點擊它才能正確更新。 若是它繼續不正確地更新,您甚至能夠嘗試使用服務器下拉列表中的其餘時間服務器。


#3樓

我我的最喜歡如下解決方案:

using System.Security.Cryptography.X509Certificates;
using System.Net.Security;

...而後在您請求獲取錯誤以前,請執行如下操做

System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; };

在諮詢了Luke的解決方案以後找到了這個


#4樓

很是簡單的「全能」解決方案是這樣的:

System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };

sebastian-castaldi的解決方案更爲詳細。


#5樓

我在使用url的網絡服務器上運行此錯誤,例如:

a.b.domain.com

但它沒有證書,因此我獲得了一個名爲的DNS

a_b.domain.com

只是在這裏提示這個解決方案,由於這在谷歌中名列前茅。

相關文章
相關標籤/搜索