签发流程是什么
用 CA 签发证书分四步:申请方生成密钥对并提交 CSR,CA 按证书用途验证域名或组织信息,CA 侧生成序列号与扩展配置,最后用 CA 私钥签出证书。自建 PKI 用 openssl ca 或 x509 -req 完成,公共 CA 走 ACME 协议或控制台流程。关键点是证书上的扩展由 CA 策略决定,而不是 CSR 里写什么就有什么。
基本信息
| 验证方式 | 域名:HTTP 文件、DNS 记录;组织:工商与回拨核验 |
|---|---|
| 签发命令 | openssl ca(带索引与序列号管理)或 x509 -req(单次签名) |
| 扩展决定 | SAN、扩展用途、有效期由 CA 侧配置决定 |
| 产出 | 服务器证书与拼装好的链文件 |
典型使用场景
- 内部系统签发:自建 CA 统一签发并分发根证书
- 批量签发:用 openssl ca 维护索引与序列号数据库
- 临时测试:用 x509 -req 一次性签出可用证书
- 对接公共 CA:用 ACME 客户端自动签发与续期
- 排错:核对签发结果中的名称与用途扩展是否符合预期
x509 -req 单次签发
x509 -req 单次签发
openssl req -new -key server.key -out server.csr -subj '/CN=example.com' # 生成 CSR
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial \
-days 365 -out server.crt # 单次签发
openssl x509 -in server.crt -noout -text | grep -A2 'Alternative Name' # 回读扩展
openssl verify -CAfile ca.crt server.crt # 验证链四种签发方式
| 方式 | 适用 | 限制 |
|---|---|---|
| openssl ca | 正式自建 PKI | 需维护索引、序列号与吊销库 |
| x509 -req | 一次性测试 | 不入库,无法走标准吊销流程 |
| ACME | 公信 CA 自动化 | 受验证方式与限流约束 |
| CA 控制台 | 人工审核场景 | 流程较长,便于留痕 |
签发后第一件事是回读证书:核对名称扩展是否覆盖全部要用的域名、用途扩展是否包含服务端认证、有效期与预期是否一致,避免上线后才发现扩展缺失。
自建 PKI 结构建议
- 根私钥离线保存,只用于签发中间 CA
- 日常签发由中间 CA 承担,便于按用途隔离
- 维护索引与序列号文件,保证吊销流程可用
- 签发脚本纳入版本管理,证书与密钥不进代码仓库
把根私钥放在联网主机上做日常签发,等于把整个信任体系的钥匙暴露在业务网络里;一旦泄露,所有由其签发的证书都需要重签。