AD CS 证书服务
场景
内网一堆系统要 HTTPS,不想每台都自签,也不想年年买证书。
前置条件
- 域环境,企业管理员权限
- 一台独立服务器(别装在域控上)
- 规划好 CA 名称,装完改不了
配置
# 1. 装企业根 CA
Install-WindowsFeature -Name AD-Certificate, ADCS-Cert-Authority -IncludeManagementTools
Install-AdcsCertificationAuthority -CAType EnterpriseRootCa `
-CACommonName "Corp-Root-CA" -KeyLength 2048 -HashAlgorithm SHA256 `
-ValidityPeriodYears 20 -Force
# 2. 装 Web 注册(方便申请证书)
Install-WindowsFeature -Name ADCS-Web-Enrollment -IncludeManagementTools
Install-AdcsWebEnrollment -Force
# 3. 申请 Web 服务器证书
$inf = @"
[NewRequest]
Subject = "CN=kb.corp.local"
KeyLength = 2048
KeyAlgorithm = RSA
ProviderName = "Microsoft RSA SChannel Cryptographic Provider"
RequestType = PKCS10
[Extensions]
2.5.29.17 = "{text}DNS=kb.corp.local&DNS=www.kb.corp.local"
"@
certreq -new web.inf web.req
certreq -submit web.req web.cer
验证
Get-CACrlDistributionPoint
certutil -CAInfo
certutil -ping
浏览器打开 http://ca.corp.local/certsrv 能申请证书。
回滚
Uninstall-AdcsCertificationAuthority -Force
坑
- CA 名称装完不能改,想清楚再装。
- 根 CA 私钥丢了整个 PKI 报废,务必备份。
- CRL 分发点不可达,证书校验会失败。
- 装在域控上会拖慢登录,也会带来安全风险。
- 证书模板权限没配,普通用户申请不了。
- 服务器时间不对,签出来的证书直接无效。