2.5. 使用私有 CA 使用 OpenSSL 为 CSR 发布证书
要让系统建立 TLS 加密通信频道,证书颁发机构(CA)必须为它们提供有效的证书。如果您有私有 CA,您可以通过从系统签署证书签名请求(CSR)来创建请求的证书。
前提条件
- 您已配置了私有 CA。如需更多信息,请参阅 第 2.2 节 “使用 OpenSSL 创建私有 CA”。
- 您有一个包含 CSR 的文件。您可以在 第 2.3 节 “使用 OpenSSL 为 TLS 服务器证书创建私钥和 CSR” 中找到创建 CSR 的示例。
流程
可选: 使用您选择的文本编辑器准备 OpenSSL 配置文件,以便为证书添加扩展,例如:
$ vim <openssl.cnf> [server-cert] extendedKeyUsage = serverAuth [client-cert] extendedKeyUsage = clientAuth
使用
x509
工具来基于 CSR 创建证书,例如:$ openssl x509 -req -in <server-cert.csr> -CA <ca.crt> -CAkey <ca.key> -CAcreateserial -days 365 -extfile <openssl.cnf> -extensions <server-cert> -out <server-cert.crt> Signature ok subject=C = US, O = Example Organization, CN = server.example.com Getting CA Private Key
要提高安全性,请在从 CSR 创建另一个证书前删除 serial-number 文件。这样,您可以确保序列号始终随机。如果您省略了
CAserial
选项用于指定自定义文件名,则 serial-number 文件名与证书的文件名相同,但其扩展名被替换为.srl
扩展名(上例中的server-cert.srl
)。
其他资源
-
openssl (1)
,ca (1)
, 和x509 (1)
man page