本文針對使用 GPO 散發的有效根 CA 憑證顯示為不受信任的問題提供因應措施。
原始 KB 編號: 4560600
徵兆
重要
不受信任的跟證書授權單位 (CA) 憑證問題可能是由許多 PKI 設定問題所造成。 本文僅說明不受信任根 CA 憑證的其中一個可能原因。
使用憑證和公鑰基礎結構 (PKI) 的各種應用程式可能會遇到間歇性問題,例如連線錯誤,每天/周發生一次或兩次。 發生這些問題的原因是結束實體憑證的驗證失敗。 受影響的應用程式可能會傳回不同的連線錯誤,但它們都會有不受信任的跟證書錯誤。 以下是這類錯誤的範例:
Hex | Decimal | 符號 | 文字版本 |
---|---|---|---|
0x800b0109 | -2146762487 | (CERT_E_UNTRUSTEDROOT) | 已處理憑證鏈結,但在跟證書中終止 |
任何使用 CryptoAPI 系統架構 的 PKI 啟用應用程式,都可能會因連線中斷或 PKI/憑證相依功能失敗而受到影響。 自 2020 年 4 月起,已知受此問題影響的應用程式清單包括,但可能不限於:
- Citrix
- 遠端桌面服務 (RDS)
- Skype
- 網頁瀏覽器
系統管理員可以藉由檢查 CAPI2 記錄檔來識別和疑難解答不受信任的根 CA 憑證問題。
將疑難解答工作放在 包含下列簽章的 CAPI2 記錄內建置鏈結/驗證鏈結原則 錯誤上。 例如:
錯誤 <DateTime> CAPI2 11 組建鏈結
錯誤 <DateTime> CAPI2 30 驗證鏈結原則結果 已處理憑證鏈結,但在信任提供者不信任的跟證書中終止。
[value] 800b0109
原因
如果使用下列組策略來散發根 CA 憑證,就可能發生不受信任的根 CA 憑證問題:
計算機設定>Windows 設定>安全性設定>公鑰>原則受信任的跟證書授權單位
根本原因詳細數據
使用 GPO 散發根 CA 憑證時,將會刪除並再次寫入 的內容 HKLM\SOFTWARE\Policies\Microsoft\SystemCertificates\Root\Certificates
。 這項刪除是設計方式,因為 GP 會如何套用登錄變更。
保留給根 CA 憑證之 Windows 登錄區域中的變更,將會通知 用戶端應用程式的 Crypto API 元件 。 應用程式將會開始與登錄變更同步處理。 同步處理是應用程式保持最新狀態的方式,並瞭解最新的有效根 CA 憑證清單。
在某些情況下,組策略處理需要較長的時間。 例如,許多根 CA 憑證會透過 GPO 散發(類似於許多 防火牆 或 Applocker
原則)。 在這些情況下,應用程式可能不會收到受信任根 CA 憑證的完整清單。
基於這個原因,鏈結至那些遺漏根 CA 憑證的結束實體憑證將會轉譯為不受信任。 而且,各種憑證相關問題將開始發生。 此問題是間歇性的,可藉由重新處理 GPO 或重新啟動來暫時解決。
如果使用替代方法發佈根 CA 憑證,則問題可能不會發生,因為上述情況。
因應措施
Microsoft瞭解此問題,並正在努力改善未來 Windows 版本中的憑證和密碼編譯 API 體驗。
若要解決此問題,請避免使用 GPO 散發根 CA 憑證。 它可能包含以登錄位置為目標(例如 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\SystemCertificates\Root\Certificates
)將根 CA 憑證傳遞給用戶端。
將根 CA 憑證儲存在不同的實體、根 CA 證書存儲中時,應該解決問題。
發佈根 CA 憑證的替代方法範例
方法 1: 使用命令行工具 certutil
,並將儲存在檔案 中的 CA 憑證根目錄rootca.cer:
certutil -addstore root c:\tmp\rootca.cer
注意
此命令只能由本機系統管理員執行,而且只會影響單一計算機。
方法 2:啟動 certlm.msc (本機計算機的憑證管理控制台),並在登錄實體存放區中匯入根 CA 憑證。
注意
certlm.msc 控制台只能由本機系統管理員啟動。 此外,匯入只會影響單一計算機。
方法 3:使用 GPO 喜好設定來發佈跟證書,如組策略喜好設定中所述
若要發佈根 CA 憑證,請遵循下列步驟:
使用
certutil -addstore root c:\tmp\rootca.cer
命令手動匯入電腦上的跟證書(請參閱方法 1)。在您匯入跟證書的計算機上開啟 GPMC.msc。
以下欄方式編輯您要用來部署登入設定的 GPO:
- 編輯跟證書的計算機>設定組策略喜好>設定 Windows 設定>登錄>路徑。
- 將跟證書新增至 GPO,如下列螢幕快照所示。
將新的 GPO 部署到需要發行跟證書的電腦。
將根 CA 憑證寫入位置 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates\ROOT\Certificates
,以散發根 CA 憑證的任何其他方法、工具或用戶端管理解決方案都能夠運作。