2010-04-12 80 views
3

我有一個正在聯繫web服務的ASP.NET網站。一切工作正常通過http連接,但當我嘗試https://它無法連接。我似乎沒有從網站得到任何錯誤,web服務日誌什麼也沒有顯示,意味着什麼都沒有連接到它。在asp.net應用中連接到https:// webservice

我可以連接到我的https:// webservice從像soapclient.com和請求信息的網站,所以web服務和端口正在工作。

有什麼特別的我應該做的,以便連接到一個正常的http://在.NET中的一個https:// web服務?我現在所做的只是改變它連接到我的安全URL的URL。

我使用 ASP.NET 2,IIS7

在此先感謝。

編輯:剛發現實際的錯誤消息:底層連接已關閉:無法建立SSL/TLS安全通道的信任關係 - 在我眼中告訴我,我沒有將自簽名證書添加到已安裝的通道證書在服務器上...但我有...

回答

1

您需要添加您的自簽名證書在受信任的根證書頒發機構中使用運行ASP.NET網站的服務器的本地計算機存儲區。

將webservice服務器的證書導出爲.cer文件,並將其複製到運行ASP.NET網站的服務器。然後,在該服務器上:

  1. 雙擊.cer文件並安裝證書
  2. 在嚮導中,選擇商店爲本地計算機文件夾下的受信任的根證書頒發機構。
  3. 您可能必須重新啓動IIS,或者服務器

有朝此頁面底部一些好的指導,在「安裝客戶端計算機上的自簽名證書」:http://webhelp.esri.com/arcgisserver/9.3/dotNET/index.htm#setting_up_ssl.htm

+0

感謝。這似乎排除了這個問題。我確實通過點擊IE安裝證書並選擇安裝,我甚至選擇了你提到的位置,因爲我知道它應該在那裏,但由於某種原因,它沒有安裝它。 .NET看起來與IE的地方不同,因爲我可以在IE中查看web服務沒有問題? – webnoob 2010-04-12 11:38:38

+0

IE和.NET都使用Windows證書存儲。不知道...也許它確實工作,你只需要重新啓動一些東西? – 2010-04-12 12:08:38

+0

我在添加證書之前重新啓動了。我想這只是其中一件奇怪的事情......再次感謝您的幫助。 – webnoob 2010-04-12 12:32:51

0

看起來您的客戶端遇到證書驗證錯誤,因爲您的服務器證書是自簽名的。

嘗試在調用Web服務之前在您的網站代碼中包含以下行(C#)。這將告訴.NET忽略所有的證書驗證錯誤:

ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => { return true; }; 

這顯然應該不會在生產環境中:)