You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ADCS证书请求历史留存问题:关闭页面后无法查看请求记录

ADCS Web界面证书请求历史丢失的解决方法

问题根源

ADCS默认Web界面的「查看待处理证书请求状态」页面依赖客户端会话Cookie存储请求跟踪信息,关闭浏览器后会话Cookie失效,导致请求历史无法留存。同时默认配置下,Web界面仅展示当前会话内的请求记录,未关联服务器端的CA数据库请求日志。

解决步骤

1. 启用CA数据库的请求持久化存储

  • 打开「证书颁发机构」控制台,右键目标CA服务器 → 属性
  • 切换到「数据库」选项卡,确保勾选「将请求存储在数据库中」,并设置合理的请求保留期限(如30天)
  • 执行命令重启ADCS服务:
    net stop certsvc && net start certsvc
    

2. 修改CertSrv Web界面的查询逻辑(中文环境)

默认路径:C:\Windows\System32\CertSrv\zh-CN

  • 编辑certrqst.asp:找到会话ID相关的查询代码,将其替换为基于当前登录用户账户的查询(需启用Windows身份验证),或添加手动输入请求ID的查询入口
  • 编辑certstatus.asp:增强页面功能,允许用户通过请求ID、证书序列号检索历史请求记录

3. 配置IIS服务器端会话存储

  • 打开IIS管理器,定位到CertSrv站点 → 功能视图 → 会话状态
  • 将会话模式从「进程内(InProc)」改为「状态服务器(StateServer)」或「SQL Server」,确保会话数据存储在服务器端
  • 设置会话超时时间为24小时以上,避免短期关闭浏览器导致会话失效

4. 替代方案:使用命令行查询请求状态

如果Web界面修改成本高,可直接通过命令行操作:

  • 查询指定状态的请求(2=待处理,3=已批准,4=已拒绝):
    certutil -view -restrict "RequestStatus:3"
    
  • 根据请求ID查询详情:
    certutil -getrequest <请求ID>
    
  • 导出已签发的证书:
    certutil -retrieve <请求ID> 已签发证书.cer
    

关键注意事项

  • 必须为CertSrv站点启用Windows身份验证,禁用匿名访问,这样服务器才能将请求记录关联到用户账户
  • 若为非域环境,需让用户记录每次提交的请求ID,用于后续查询

内容的提问来源于stack exchange,提问作者Vyvy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 20:21:08