Windows

獨立根 CA 在頒發證書時不強制執行來自 CAPolicy.inf 的 KeyUsage 設置

  • January 5, 2022

我有一個獨立的根 CA (RootCA) 和一個企業從屬 CA (SubCA)。兩者都是 Windows Server 2019。

RootCA 在嘗試簽署 SubCA 的 CSR 時似乎忽略了 CAPolicy.inf 文件配置設置,如待處理請求屬性視圖中所示:

在此處輸入圖像描述

RootCA ( %SystemRoot%\CAPolicy.inf) 上的 CAPolicy.inf 是這樣的:

[Version]
Signature= "$Windows NT$"

[Strings]
szOID_KEY_USAGE = "2.5.29.15"

[Extensions]
%szOID_KEY_USAGE% = AwIBhg==
Critical = %szOID_KEY_USAGE%

在 RootCA 安裝期間,CAPolicy.inf 用於使根證書的 KeyUsage 擴展至關重要。這可以在根證書屬性以及 certocm.log 中看到:Opened Policy inf: C:\Windows\CAPolicy.inf

文件指出

CAPolicy.inf 是一個配置文件,它定義了應用於根 CA 證書和根 CA 頒發的所有證書的擴展、約束和其他配置設置。

那麼,為什麼 RootCA 在頒發(SubCA)證書時會忽略 CAPolicy.inf,儘管文件另有說明?

如果 CSR 將BasicConstraint副檔名設置為CA=TrueCA,則預設為您在上面看到的內容。您可以通過在簽名 CA(根)上執行以下命令來覆蓋它:

certutil -setreg policy\EditFlags -EDITF_ADDOLDKEYUSAGE

重新啟動服務,然後重試。

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