2012-09-05 83 views
1

我會盡量簡短。我的服務器上已經安裝了證書。我只是有一個關於在我的網站上配置ssl的正確方法的問題。在IIS/ASP.NET中配置SSL

我需要保護根目錄login.aspxadmincart目錄。因此,在IIS中,您可以右鍵單擊網站中的文件或目錄,然後轉至PropertiesFile/Directory Security選項卡→Secure Communications部分並單擊Edit→檢查Require secure channel (SSL)。這會導致通過https連接請求文件或目錄內容,並且asp.net不會自動轉換請求。

所以,不是改變我所有的鏈接和重定向到使用絕對路徑指定httphttps,我實現了一個http module的建議herehttphttps之間自動切換。不過,我仍然得到錯誤:

The page must be viewed over a secure channel

,因爲它不是開始超過https發送,但在模塊中轉換。如果我刪除了IIS中的設置,它可以正常工作。頁面模塊自動將連接切換到https。我的問題是,是否可以在IIS中沒有SSL要求設置,並讓我的http模塊處理http/https切換?我覺得這樣做會讓我失去一層安全感。有沒有人有這方面的見解?

+0

我認爲你得到這個消息是因爲你根本沒有離開http頁面運行(所以這個模塊找不到它們並從http切換到https)。我現在使用相同的模塊幾年,並沒有問題。 – Aristos

回答

0

我認爲不啓用Require secure channel選項是可以接受的。我只在需要保護整個域時才啓用該選項,如secure.domain.com。對於部分需要HTTPS的部分以及我不需要的部分,我使用您描述的切換器方法。當用戶請求登錄頁面時,它們將通過HTTPS重定向到同一頁面。所有Cookie設置爲僅通過SSL傳送:

<system.web> 
     <httpCookies httpOnlyCookies="true" requireSSL="true" lockItem="true" /> 
</system.web> 

如果cookie不存在,那麼用戶未登錄並且頁面通過HTTP傳送。