Windows
獨立根 CA 在頒發證書時不強制執行來自 CAPolicy.inf 的 KeyUsage 設置
我有一個獨立的根 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=True
CA,則預設為您在上面看到的內容。您可以通過在簽名 CA(根)上執行以下命令來覆蓋它:certutil -setreg policy\EditFlags -EDITF_ADDOLDKEYUSAGE
重新啟動服務,然後重試。