2024年8月15日 星期四

[研究]政府組態基準(GCB)、WAF 與 IIS 用戶端憑證 (Client Certificate)

[研究]政府組態基準(GCB)、WAF 與 IIS 用戶端憑證 (Client Certificate)

2024-08-15

供參考,ChatGPT 回答不保證對。

政府組態基準(Government Configuration Baseline,簡稱GCB) 是否有哪一條,會導致 Windows Server 2019 的 IIS 向 Windows 10 上 Edge 或 Chrome 要求 Client Certificate 後,雖然有跳出憑證供選擇,也選對了,但出現 403 錯誤問題 ?

ChatGPT

政府組態基準 (GCB) 是一系列安全設定,旨在強化系統的安全性。在 Windows Server 2019 上應用 GCB 可能會導致 IIS 伺服器出現 403 錯誤,特別是在使用 Client Certificate 驗證的情境下。以下是一些可能影響的設定:

  • Enhanced Key Usage (EKU) 設定:GCB 可能會強制要求只有特定 EKU 的憑證才能被認可。如果客戶端所提供的憑證不符合伺服器要求的 EKU,則可能會導致 403 錯誤。
  • Certificate Revocation List (CRL) 檢查:GCB 可能會要求嚴格的 CRL 檢查。如果客戶端憑證的 CRL 檢查失敗,或者伺服器無法存取 CRL,則也會導致 403 錯誤。
  • 憑證鏈中的問題:GCB 可能會強制要求完整的憑證鏈。如果伺服器無法驗證客戶端憑證的完整憑證鏈,也可能會導致 403 錯誤。
  • TLS 設定:GCB 可能會限制伺服器僅使用特定的 TLS 協定版本或加密套件。如果客戶端的憑證或其協商過程不符合這些要求,也可能會導致驗證失敗並出現 403 錯誤。
  • IIS 設定相關:GCB 可能會修改 IIS 的安全性相關設定,如 Client Certificate Mapping Authentication 的配置。如果這些配置與 GCB 的要求不一致,可能會導致 IIS 在進行憑證驗證時出現錯誤。

這些是可能導致問題的部分 GCB 設定。要確定具體是哪一條設定導致問題,可以考慮逐步排查設定並檢查事件日誌,或調整 GCB 設定以進行測試。

********************************************************************************

該如何解決 ?

ChatGPT

解決 Windows Server 2019 的 IIS 伺服器在應用政府組態基準 (GCB) 後出現 403 錯誤的問題,可以按照以下步驟進行排查和修正:

1. 檢查 Client Certificate 的 EKU (Enhanced Key Usage)

步驟: 確認客戶端憑證是否包含伺服器期望的 EKU。通常,Client Authentication (1.3.6.1.5.5.7.3.2) 是必須的。如果客戶端憑證缺少此 EKU,則可能導致 403 錯誤。

解決方法: 如需,更新客戶端憑證的 EKU 或重新申請符合要求的憑證。

2. 確認 CRL (Certificate Revocation List) 的可用性

步驟: 確認伺服器能夠成功地下載和檢查 CRL。如果伺服器無法存取 CRL 或檢查過程失敗,將會拒絕憑證並返回 403 錯誤。

解決方法: 確保 CRL 的 URL 可供伺服器訪問,並在 IIS 或 GPO 設定中調整 CRL 檢查設定。

3. 確認完整的憑證鏈

步驟: 檢查客戶端憑證是否有完整的憑證鏈,包括所有中間 CA 憑證。IIS 伺服器需要完整的憑證鏈來進行驗證。

解決方法: 安裝所有必須的中間憑證,並確保客戶端傳遞完整的憑證鏈。

4. 檢查 TLS 設定

步驟: 確認 IIS 伺服器的 TLS 設定是否允許客戶端使用的 TLS 協定版本和加密套件。如果 GCB 限制了 TLS 版本或加密套件,可能會導致驗證失敗。

解決方法: 如果需要,調整 TLS 設定以允許合適的 TLS 版本和加密套件,或者更新客戶端瀏覽器和憑證以支持伺服器的設定。

5. 調整 IIS 的 Client Certificate Mapping Authentication 設定

步驟: 如果 IIS 使用 Client Certificate Mapping Authentication,檢查這些設定是否符合 GCB 的要求並能正常運行。

解決方法: 在 IIS 中確認這些設定是否正確,例如是否啟用了基於 Active Directory 的憑證映射,或需要調整匹配規則。

6. 檢查 Windows 事件日誌

步驟: 查看 Windows 事件檢視器中的日誌,以獲取與 403 錯誤相關的具體信息,這可以幫助定位具體是哪一個設定導致了錯誤。

解決方法: 根據日誌中的錯誤代碼和描述進一步調整設定。

7. 暫時停用或放寬 GCB 設定

步驟: 為了診斷問題,可以暫時放寬 GCB 的部分設定,觀察問題是否得到解決。

解決方法: 在排查出具體導致問題的設定後,調整或更新 GCB 基準,以允許 IIS 正常運行。

經過以上步驟,如果問題依然存在,可能需要進一步分析和調整特定的 GCB 配置或尋求專業技術支持。

********************************************************************************

WAF 會導致 Windows Server 2019 的 IIS 向 Windows 10 上 Edge 或 Chrome 要求 Client Certificate 後,雖然有跳出憑證供選擇,也選對了,但出現 403 錯誤問題 ?

ChatGPT

Web Application Firewall (WAF) 的配置可能會影響 Windows Server 2019 的 IIS 與 Windows 10 上的 Edge 或 Chrome 瀏覽器之間的 Client Certificate 驗證過程,從而導致 403 錯誤。以下是可能的原因及解決方法:

1. WAF 規則阻擋憑證驗證流量

原因: WAF 可能會配置一些安全規則來過濾或阻擋特定類型的流量,包括與 Client Certificate 驗證相關的請求。如果 WAF 阻擋了某些 TLS 握手消息或憑證驗證相關的流量,可能導致 IIS 收不到完整的憑證信息,進而出現 403 錯誤。

解決方法: 查看和調整 WAF 規則,確保它不會阻擋與 Client Certificate 驗證相關的流量。可以嘗試暫時停用 WAF,確認問題是否因 WAF 設定引起。

2. WAF 對 HTTPS 流量的解密和檢查

原因: 如果 WAF 配置了解密 HTTPS 流量的功能,它可能會在解密和重新加密過程中破壞憑證的傳遞和驗證。這可能導致客戶端瀏覽器雖然選擇了正確的憑證,但 IIS 無法成功驗證,從而返回 403 錯誤。

解決方法: 檢查 WAF 是否對 HTTPS 流量進行了解密,並確保在此過程中不會影響憑證驗證。你可以嘗試禁用 WAF 的 HTTPS 解密功能,或者配置 WAF 允許憑證驗證相關流量不受干擾。

3. WAF 對憑證的要求或檢查

原因: 一些 WAF 可能會施加額外的憑證要求,或對憑證進行額外的檢查。如果這些要求與 IIS 的配置不一致,可能導致 IIS 收到的憑證無法通過驗證,最終返回 403 錯誤。

解決方法: 確認 WAF 的憑證相關設置與 IIS 的設置一致,並且不會引入額外的驗證步驟或要求。必要時調整 WAF 的配置以適應 IIS 的憑證驗證過程。

4. WAF 阻擋中間憑證或 CRL 查詢

原因: WAF 可能阻擋了伺服器對中間憑證或 CRL (Certificate Revocation List) 的查詢,這會導致 IIS 無法完成對客戶端憑證的驗證並返回 403 錯誤。

解決方法: 檢查 WAF 是否阻擋了 IIS 進行中間憑證或 CRL 的查詢,並確保這些查詢可以正常通過 WAF。

5. 排查其他潛在問題

步驟: 在嘗試解決以上常見問題後,仍需進行全面的系統排查,包括檢查 IIS 和 WAF 的日誌文件,查看是否有更多關於 403 錯誤的信息。

經過這些排查和設定調整後,如果問題仍然存在,可能需要對 WAF 進行更深層次的分析,或者考慮對 WAF 設置進行全面檢查以排除潛在干擾。

********************************************************************************

(待續)

沒有留言:

張貼留言