搭建新CA时发现旧MSP在DC部署ADCS,求稳妥替换实施方案
稳妥替换旧ADCS CA的分步流程
鉴于团队对现有环境了解有限,且旧CA部署在域控制器上,优先推荐方案二(部署第二从属CA导入旧配置),该方案能隔离旧配置与新CA架构,降低过渡风险。以下是完整稳妥的执行流程:
一、前期审计与备份(核心前置步骤)
在任何操作前必须摸清旧CA的依赖关系,避免业务中断:
- 导出旧CA完整配置与证书:
- 打开ADCS控制台,右键旧CA →「所有任务」→「备份CA」,勾选「私钥和CA证书」「证书数据库和日志」「CA配置」,设置强密码后备份到安全存储介质。
- 导出旧CA根证书:执行命令
certutil -ca.cert old-ca-root.cer
- 梳理旧CA的业务依赖:
- 导出所有证书模板清单:
certutil -catemplates > old-ca-templates.txt,标记出正在被使用的模板(可结合CA控制台的「颁发的证书」列表交叉验证)。 - 扫描域内设备依赖:在域成员服务器/客户端上执行
Get-ChildItem Cert:\LocalMachine\My | Where-Object {$_.Issuer -match "旧CA的主体名称"},统计依赖旧CA证书的服务(如IIS、VPN、Exchange等)。
- 导出所有证书模板清单:
- 记录AD中的CA对象信息:打开「Active Directory站点和服务」(需启用「显示服务节点」),定位到
Public Key Services\Certification Authorities,记录旧CA的对象名称与证书指纹。
二、部署第二从属CA并导入旧CA配置
- 部署新从属CA服务器:
安装Windows Server 2019并加入域,通过服务器管理器安装「证书颁发机构」角色,选择「从属CA」类型。 - 获取离线根CA签发的从属证书:
生成证书请求文件后,复制到离线根CA,执行命令certutil -submit -config "离线根CA的计算机名称" request.req new-subordinate.cer完成签发,将签发的证书与根CA证书导入新从属CA。 - 导入旧CA备份配置:
- 停止ADCS服务:
net stop certsvc - 右键新从属CA →「所有任务」→「还原CA」,选择之前备份的旧CA配置文件,输入备份密码完成还原。
- 启动ADCS服务:
net start certsvc,验证CA是否正常签发证书(可申请测试证书)。
- 停止ADCS服务:
三、平滑过渡客户端信任与证书替换
- 推送新CA信任链到域内所有设备:
编辑域默认组策略,定位到「计算机配置→Windows设置→安全设置→公钥策略」:- 将离线根CA证书导入「受信任的根证书颁发机构」
- 将两个从属CA(原有从属CA+新部署的第二从属CA)的证书导入「中级证书颁发机构」
- 强制刷新组策略:
gpupdate /force
- 逐步替换旧证书:
- 对于启用自动注册的证书模板,修改模板的「颁发CA」为新的从属CA,让客户端自动申请新证书。
- 对于手动部署的证书(如Web服务器、VPN设备),手动向新从属CA申请证书并替换旧证书。
- 监控旧CA的请求日志:连续7天无新签发请求,确认所有业务已切换至新CA架构。
四、停用并清理旧CA
- 临时停用旧CA验证:停止旧CA的ADCS服务
net stop certsvc,观察1-2周,确认无业务因证书失效中断。 - 卸载旧CA角色:在域控制器的服务器管理器中移除「证书颁发机构」角色。
- 清理AD残留对象:
- 在「Active Directory站点和服务」中删除
Public Key Services\Certification Authorities下的旧CA对象。 - 执行命令
certutil -delstore -enterprise CA "旧CA证书指纹"删除AD存储中的旧CA证书。
- 在「Active Directory站点和服务」中删除
- 彻底清理旧CA服务器:删除ADCS相关的备份文件与配置目录。
关于方案一的风险提示
若选择将旧CA配置导入现有从属CA,需先备份现有从属CA的完整配置,但该方案存在以下风险:
- 旧CA的配置(如模板权限、签发策略)可能与新CA架构冲突,导致新CA无法正常运行。
- 一旦配置出错,会直接影响已基于新CA架构部署的业务,恢复成本更高。
因此仅在对环境依赖关系完全明确、且能快速回滚的场景下考虑使用。
内容的提问来源于stack exchange,提问作者SophisticatedBear
相关产品推荐
相关产品推荐

