我有一个独立根 CA (RootCA) 和一个企业从属 CA (SubCA)。两者都是 Windows Server 2019。
当尝试签署 SubCA 的 CSR 时,RootCA 似乎忽略了 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?
答案1
如果 CSR 已将BasicConstraint
扩展名设置为CA=True
CA,则默认为如上所示。您可以通过在签名 CA(根 CA)上运行以下命令来覆盖此设置:
certutil -setreg policy\EditFlags -EDITF_ADDOLDKEYUSAGE
重新启动服务,然后重试。