Iis

相互 SSL 身份驗證和證書要求

  • May 11, 2018

對於我們的內部測試,我需要在我們的 IIS 伺服器(它託管兩個應用程序:ASP.NET Web GUI 和一個 Web 服務)和客戶端(以兩種可能的方式訪問伺服器:帶有瀏覽器的 Web GUI 和帶有使用 WinForms 創建的客戶端的 Web 服務)。完成測試並評估結果後,我將不得不向我們的客戶提供一些指導,如何在他們的環境中進行設置和配置 - 一個封閉的企業環境,可通過 VPN 由非公共 URL 訪問。

我對 PKI、密鑰和證書非常熟悉,我只是在 HTTPS 環境下對 PKI 沒有太多經驗。使用一些可用的工具,主要是 XCA,我設法創建了我的根 CA 證書、伺服器證書和一堆客戶端證書;我將它們安裝在 IIS 和客戶端商店中,一切正常,但存在一些問題和疑問:

  • 伺服器證書所需的(擴展)密鑰使用值是什麼?在我的測試證書中,我得到了Digital Signature,Non RepudiationKey Encipherment擴展TLS Web Server Authentication- 我錯過了什麼嗎?這些都是必需的嗎?
  • 關於客戶端證書的相同問題:需要哪些密鑰用法?我的測試證書有Digital SignatureKey EnciphermentData Encipherment擴展TLS Web Client Authentication- 我錯過了嗎?這些都是必需的嗎?
  • 客戶端證書是否還有其他特殊功能?
  • 伺服器證書的名稱應作為 DNS 條目(或 IP,如果通過 IP 地址訪問,對嗎?)列在 SAN 列表中。但是,Subject 的專有名稱的 CN 欄位呢?它應該有任何特定的形式嗎?應該是空的嗎?例如,非公共地址mytestenv.mycompany.lan可以用作 SAN 嗎?目前在我的測試伺服器證書中,我只有一個主題 CN 集,沒有 SAN DNS 條目,我相信我需要添加它,對嗎?
  • 是否有任何步驟(除了將 CA 證書添加到瀏覽器或 Windows 商店中的受信任 CA 之外)以防止瀏覽器顯示有關站點不安全的整頁安全警告?我想我可以在沒有“綠色鎖”或地址欄或其他內容的情況下生活,但例如 Chrome 會顯示整頁安全錯誤,並且在我為伺服器配置安全異常之前不會顯示網頁。我怎樣才能防止這種情況?可能缺少 SAN 是原因嗎?IE 和 Firefox 顯示該頁面。
  • 諸如 DV/OV/EV、證書透明度、瀏覽器的“HTTPS 啟示錄”之類的東西,或者其他什麼東西,是否會以任何方式影響我的(也可能是客戶的)設置?我需要特別注意這些嗎?

如果可能的話,我會對一般評論以及特定伺服器(尤其是 IIS)和瀏覽器(在客戶的基礎設施中這些將主要是 IE 11+ 和 Edge)的要求感興趣。

密鑰用法

對於 TLS,您需要密鑰加密和數字簽名以及適用的 TLS Web 伺服器/客戶端身份驗證擴展使用。不使用不可否認性。密鑰協議理論上可以用於 ECDH 而不是 ECDHE。請參閱https://security.stackexchange.com/a/24107

證書透明度。

Google以其相當大的影響力推動了這一點。向透明度日誌送出證書時要考慮的一件重要事情是,它們實際上是域名(或萬用字元)的發布。我注意到在獲得letsencrypt證書後對網路伺服器的查詢,理論上這甚至可以在你的ssl證書實際安裝之前,因為透明度日誌有一個預先發布。

參見:Scott Helme 的部落格

四月 Chrome 更新:

來自:https ://groups.google.com/a/chromium.org/forum/#!topic/ct-policy/wHILiYf31DE

自 2015 年 1 月起,Chrome 要求擴展驗證 (EV) 證書符合 CT 標準,才能獲得 EV 狀態。2018 年 4 月,此要求將擴展到所有新頒發的公共信任證書(DV、OV 和 EV),並且在 Chrome 評估時,不符合此政策的證書將不會被視為受信任。由使用者或管理員添加的本地受信任或企業 CA 頒發的證書不受此要求的約束。

具有本地名稱的 SAN

沒有我知道的問題。儘管 .local 是一個特別討厭的 TLD,因為它與多播 DNS 一起使用。

其他需求

對於任何成熟的系統,都需要 CRL 和 OCSP 伺服器。一些子程序可能比瀏覽器本身要求更高。以 IE11 中的 Java 外掛為例。如果 webstart 應用程序或小程序在層次結構中具有無法訪問的 CRL 或 OCSP 伺服器,則瀏覽器框架可能會在幾分鐘內保持完全空白。此外,如果 Apache 網路伺服器使用 OCSP 裝訂,那麼 OCSP 伺服器最好在網路伺服器本身呼叫時做出響應,否則不幸的是,使用 Apache,所有客戶端都會顯示錯誤,直到伺服器再次裝訂響應。

授權密鑰 ID。使用此功能可以從因錯誤或妥協而撤回的中間證書中恢復。

CAA 記錄。公共 CA 在頒發證書時需要檢查這一點。見https://scotthelme.co.uk/certificate-authority-authorization/

更多參考資料:

引用自:https://serverfault.com/questions/911752