2.6. 使用私有 CA 使用 OpenSSL 为 CSR 发布证书


要建立 TLS 加密的数据交换频道,系统必须从证书颁发机构(CA)获取有效的证书。如果您有私有 CA,您可以通过签名证书签名请求(CSR)来创建请求的证书。

前提条件

流程

  1. 可选:使用文本编辑器准备一个 OpenSSL 配置文件来为证书添加扩展,例如:

    $ vim <openssl.cnf>
    [server-cert]
    extendedKeyUsage = serverAuth
    
    [client-cert]
    extendedKeyUsage = clientAuth

    上例仅演示了原则。openssl 工具不会自动为证书添加所有扩展。您必须将所需的扩展添加到 CNF 文件中,或者将它们附加到 openssl 命令的参数中。

  2. 使用 x509 工具创建基于 CSR 的证书,例如:

    $ openssl x509 -req -in <server_cert.csr> -CA <ca.crt> -CAkey <ca.key> -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 创建另一个证书前删除序列号文件。这样,您确保序列号始终是随机的。如果您省略了指定自定义文件名的 CAserial 选项,则序列号文件名与证书的文件名相同,但其扩展名被 .srl 扩展名替换(上例中的server-cert.srl )。

验证

  1. 验证证书内容和字段:

    $ openssl x509 -in <server_cert.crt> -text -noout
    Certificate:
        Data:
            Version: 3 (0x2)
            Serial Number: ...
            Issuer: C = US, O = Example CA, CN = Example CA
            Validity
                Not Before: May 21 10:30:00 2026 GMT
                Not After : May 21 10:30:00 2027 GMT
            Subject: C = US, O = Example Organization, CN = server.example.com
            ...
  2. 验证证书是否由正确的 CA 签名:

    $ openssl verify -CAfile <ca.crt> <server_cert.crt>
    <server_cert.crt>: OK
  3. 检查证书过期日期:

    $ openssl x509 -in <server_cert.crt> -noout -dates
    notBefore=May 21 10:30:00 2026 GMT
    notAfter=May 21 10:30:00 2027 GMT
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部