2014-02-25 48 views
0

我對SSL的知識知之甚少,所以在遷移到HTTPS之前我有幾個問題。從HTTP到HTTPS時考慮的注意事項

所以一直在做大量的閱讀,現在我理解了公鑰和私鑰的交換。客戶端和服務器交換不對稱密鑰,以便最終他們可以擁有對稱密鑰。

這裏有幾個問題:

  1. 一旦用戶提供自己的用戶名和密碼,證書都OK,我會保存在會話中的用戶。 Context.Session["user"]。在所有未來的頁面上,我將確保Context.Session["user"]不爲空以呈現頁面。這將是安全的?

  2. 客戶端不會只有Web瀏覽器也控制檯應用程序。如何防止控制檯應用程序在每次請求時都必須交換密鑰?有沒有辦法阻止一些頁面通過https訪問並通過http訪問?

  3. 我相信這是至關重要的會議否則每個請求我將不得不等待交換密鑰?保存了用戶是否登錄數據庫而不是會話是個壞主意?

回答

1

如果您以正確的方式使用microsoft asp.net,那麼SSL非常透明。也不要使用SSL自簽名證書,這不是一個好主意。還有一些WCF服務需要重新配置才能使用SSL。

  1. 在會話中存儲用戶信息而不是cookie是不是一個好主意。但任何方式,它工作正常。它也會在ssl中正常工作。

  2. 基於控制檯應用程序。如果根(或服務器)證書將位於受信任的根列表中,並且控制檯應用程序是使用.NET編寫的並使用WebRequest或WCF,則不會有任何問題。你也可以嘗試接受ServicePointManager.ServerCertificateValidationCallback = delegate {return true; }; 但是,如果你的應用程序使用套接字或類似的東西 - 你可能會遇到問題。

  3. 這是非常快速和透明的密鑰交換過程。別擔心。

反正你可以配置你的IIS和應用程序可以從可信地區訪問HTTP僅到https的任何其他地方。

1

部分答案:

  1. 是。如果您正在使用一個母版頁,您可能需要在母版頁中進行檢查,以確保您不會忘記檢查。

  2. 通過使用SecuritySwitch,您可以輕鬆地在特定頁面的http和https之間切換。迄今爲止,它在我的測試中完美無缺地工作。