WebServer V4模板证书申请报错:DNS名称无法添加至SAN
解决证书申请报错0x8009480f(CERTSRV_E_SUBJECT_DNS_REQUIRED)的步骤
1. 检查AD计算机对象的DNS属性
- 打开AD用户和计算机,定位目标计算机对象,右键进入属性:
- 在「常规」选项卡确认「DNS主机名」字段填写了有效的FQDN(如
pc-01.domain.com); - 切换到「属性编辑器」选项卡,检查
dNSHostName属性是否有匹配的FQDN值,为空或不匹配会导致模板从AD构建Subject时失败。
- 在「常规」选项卡确认「DNS主机名」字段填写了有效的FQDN(如
2. 调整证书模板的SAN扩展设置
- 打开证书模板的扩展选项卡,找到「使用者可选名称(SAN)」扩展并点击「编辑」:
- 勾选「允许使用者可选名称由申请者提供」,确保inf文件中指定的SAN能被CA接受;
- 同时确认「从此对象的Active Directory属性生成」列表中包含「DNS名称」,避免模板强制从AD获取SAN但属性缺失的冲突。
3. 验证inf文件的配置正确性
确保inf文件符合计算机证书的规范,关键配置如下:
[Version] Signature="$Windows NT$" [NewRequest] Subject = "CN=pc-01.domain.com" # 替换为实际FQDN KeySpec = 1 KeyLength = 2048 MachineKeySet = TRUE # 必须设置为TRUE,标记为计算机证书 RequestType = PKCS10 [Extensions] 2.5.29.17 = "{text}" _continue_ = "DNS=pc-01.domain.com&" # SAN字段的DNS名称需与Subject一致
4. 检查CA策略模块规则
- 打开CA控制台,右键CA名称→属性→策略模块→编辑:
- 确认是否有强制要求Subject/SAN必须包含DNS名称的规则;
- 如果规则过于严格,可调整为「允许申请者提供Subject」或放宽SAN验证逻辑(需CA管理员权限)。
5. 通过CA事件日志定位细节
- 打开事件查看器,导航到「应用程序和服务日志→Microsoft→Windows→CertificateServices-Lifecycle-System→Operational」;
- 查找与证书申请对应的拒绝事件,日志会提供更具体的失败原因(如权限不足、属性不匹配等)。
6. 确认计算机账户的注册权限
- 打开CA控制台→证书模板,右键WebServer V4模板→属性→安全选项卡;
- 确保申请证书的计算机账户拥有「注册」权限,无权限会导致CA直接拒绝请求。
内容的提问来源于stack exchange,提问作者Sajoor
相关产品推荐
相关产品推荐

