3. CA 日志类型:访问日志、错误日志、审计日志、安全日志的区别与用途
咱们做 CA 运维的,每天打交道最多的就是日志。但说实话,我刚入行的时候,也分不清「访问日志」和「审计日志」到底有啥不同。直到有一次线上出了漏洞,我需要倒查半年数据,才发现——日志分类不清,查起来简直是大海捞针。
CA 系统里,日志按用途分四类:访问日志、错误日志、审计日志、安全日志。每类记录的信息不同,采集策略和存储周期也千差万别。下面我挨个讲清楚。
3.1 访问日志(Access Log)
说白了,谁在什么时候,通过什么方式,连了 CA 的哪个服务——全记在访问日志里。HTTP 请求、证书申请接口调用、OCSP 查询、CRL 下载,这些都是。
我见过最典型的一个坑:某天突然 CA 响应变慢,大家第一反应去看错误日志,啥也没发现。结果我翻了一下访问日志,好家伙,某个 IP 每秒发了几千次 OCSP 查询。这就是典型的 DDoS 前兆。嗯,从此以后,我养成了定期扫访问日志的习惯。
3.2 错误日志(Error Log)
错误日志是最直接的问题定位工具。CA 模块启动失败、证书签名超时、数据库连接断开、权限校验不过——全都写在这里。
记得有一次,客户说证书签发总报 500 错误。我检查错误日志,发现一行:ERROR: CRL file not found。原来是 CRL 轮转脚本没跑通。如果没有错误日志,这问题排查起来得费半天劲。
database connection failed,别急着去修数据库,先看看是不是网络防火墙把端口封了。我在项目上吃过这个亏,白忙了俩小时。
错误日志的典型内容包括:
- 时间戳 + 级别(ERROR / FATAL)
- 模块名称 + 进程 ID
- 错误码 + 英文描述
- 异常堆栈(Java 环境常见)
3.3 审计日志(Audit Log)
审计日志是“谁做了什么事”的完整记录。它和安全日志有点像,但侧重点不同——审计日志偏操作行为,安全日志偏攻击与防御。
举个例子:管理员 A 在上午 10:00 吊销了一张证书。审计日志会记下操作员账号、操作时间、操作类型(吊销)、目标证书序列号。而安全日志可能只记录这个操作是否通过了身份校验、是否有异常 IP 接入。
我建议把审计日志的保留周期设长一些——至少一年。合规性检查时,审计日志就是你的救命稻草。有一次等保评测,评审专家翻出我三年前的一条日志,问“这个操作当时是谁批准的?” 好在我留了完整记录。
| 日志类型 | 典型事件 | 保留周期建议 |
|---|---|---|
| 审计日志 | 管理员登录、证书签发/吊销、策略修改、密钥备份 | 1~3年(法规要求有的更长) |
| 安全日志 | 暴力破解尝试、异常 IP 访问、权限提升失败、证书路径校验失败 | 6个月~1年 |
| 访问日志 | HTTP API 调用、OCSP/CRL 请求、Web 页面浏览 | 30~90天 |
| 错误日志 | 签名失败、数据库异常、配置错误、内存溢出 | 30天(重要事故保留更久) |
3.4 安全日志(Security Log)
安全日志关注的是“有没有人在搞破坏”。它和审计日志记录的对象不同:审计日志记录的是合法操作,安全日志更倾向于异常尝试。
比如,你设置了一个 HSM PIN 重试次数限制。如果连续输错 3 次,安全日志会记一条 HSM PIN retry exceeded。再比如,客户端证书链校验失败,安全日志也会记录。
我曾经碰到一个案例:某客户 CA 突然停止响应证书申请。查安全日志发现,有一台外置 RA 服务器的证书过期了,导致中间双向认证反复失败。安全日志里完整记录了每一次认证失败的指纹和原因。没有它,我得一台台服务器排查证书状态。
关键区别一句话总结:
- 访问日志告诉你“谁来过”
- 错误日志告诉你“哪里出事了”
- 审计日志告诉你“谁做了什么”
- 安全日志告诉你“谁在尝试做坏事”
3.5 四类日志的关系图
下面这张图把四类日志的数据源、采集位置和典型流向画了出来。你可以理解为:CA 核心模块(签名引擎、HSM、数据库)产生原始事件,经过日志分类器后流入各自的通道。
3.6 如何区分与选择采集策略
你可能会问:我到底该优先采集哪个?我的建议是:全采,但分级存储。
几种日志可以走不同的管道:
- 访问日志:数据量大、价值低,走轻量级队列(Kafka / Redis)+ 冷存储。
- 错误日志:数据量小、紧急度高,实时推送告警平台。
- 审计日志:不可篡改+长期保留,用专用的审计日志库(比如 Rsyslog + 加密传输)。
- 安全日志:建议入 SIEM,做关联分析。
嗯,日志分类这事,说起来简单,真正落地的时候细节很多。但从概念上先把四类日志的目的捋清楚,后面选工具、定策略、建告警就有章可循了。