2010-02-21 36 views
3

我需要保護我的應用程序和我的Web服務之間的通信。 我擁有應用程序和Web服務,我想知道是否有可能使用HTTPS來這樣做。使用SSL保護ASP.NET Web服務的安全,而不需要服務器上的專用IP地址

我不需要證書來向自己證明我是誰(!),所以我不想從證書頒發機構購買SSL證書。我只需要確保沒有人可以攔截我作爲WebMethod參數傳遞的數據;我可以創建一個免費證書並使用它來保護通信?

另一件事:我不希望被強制爲我的Web服務獲取專用的公共IP地址,因爲它位於共享Web服務器上。

回答

0

manyarticles那裏顯示如何在IIS中創建和安裝自簽名證書。你需要記住的是,這個證書是無效的,因爲它不是由證書頒發機構提供的。一旦你在服務器端設置的證書,你需要告訴客戶通過使用ServerCertificateValidationCallback屬性接受無效的證書:

ServicePointManager.ServerCertificateValidationCallback = 
    (sender, certificate, chain, sslPolicyErrors) => true; 
+0

但它仍然確保連接,是嗎? 公共知識產權呢? – TheAgent 2010-02-21 15:42:46

0

你不能沒有使用SSL證書(自簽署或以其他方式)專用IP地址。除非您的共享主機提供商在您的IP上提供共享SSL證書,否則您需要購買專用IP。

+0

IP與SSL無關。 SSL通過域名進行保護。只要DNS上的TTL保持不變以防止舊IP的DNS緩存,就沒有理由將非專用IP用於SSL。 – 2010-02-21 17:24:33

+0

SSL協議目前存在缺陷,只允許您爲每個IP地址使用一個證書(請參閱http://httpd.apache.org/docs/2.0/ssl/ssl_faq.html.en#vhosts)如果您使用共享IP地址,你很可能無法安裝一個SSL證書,因爲一個虛擬主機不會讓你。 所以,是的,從技術上來說,使用非專用IP的SSL是可能的,但在共享IP上不太可能。 – Robert 2010-02-22 15:36:52

0

如果您想要經歷這樣做的麻煩,您可以使用自簽名證書並擁有第三級服務器(或使用自簽名的IIS服務器)作爲您自己的證書頒發機構。這將允許您免費生成自己的證書,然後由於您可以控制服務器,您可以將CA服務器添加爲可信和中介的根證書頒發機構。

Creating Certificate Authorities and self-signed SSL certificates

2

肯定這是可行的,但取決於幾個條件。

  • 創建您自己的自簽名證書。由於您的應用程序是您自己的消費者,因此缺少認證中心並不重要。
  • 主機必須允許您使用SSL證書來配置您的IIS站點。希望他們提供的工具足夠好。
  • 您的網站擁有的共享IP 當前不能有多個綁定到它的證書。您現在處於主持人的擺佈之中,不會將您的網站移至其他IP。當時在另一個網站上可能有也可能沒有SSL證書。基本上 - 第一個勝利。 IP不能有多個證書安全的網站。