Red Hat Training

A Red Hat training course is available for RHEL 8

3.8. 使用 GnuTLS 为 TLS 客户端证书创建私钥和 CSR

要获取证书,您必须首先为您的客户端创建私钥和证书签名请求(CSR)。

流程

  1. 在客户端系统中生成私钥,例如:

    $ certtool --generate-privkey --sec-param High --outfile <example-client.key>
  2. 可选:使用您选择的文本编辑器准备一个简化创建 CSR 的配置文件,例如:

    $ vim <example_client.cnf>
    signing_key
    encryption_key
    
    tls_www_client
    
    cn = "client.example.com"
    email = "client@example.com"
  3. 使用之前创建的私钥创建 CSR:

    $ certtool --generate-request --template <example-client.cfg> --load-privkey <example-client.key> --outfile <example-client.crq>

    如果省略 --template 选项 certtool 工具会提示您输入额外的信息,例如:

    Generating a PKCS #10 certificate request...
    Country name (2 chars): <US>
    State or province name: <Washington>
    Locality name: <Seattle>
    Organization name: <Example Organization>
    Organizational unit name:
    Common name: <server.example.com>

后续步骤

验证

  1. 检查证书人类可读的部分是否与您的要求匹配,例如:

    $ certtool --certificate-info --infile <example-client.crt>
    Certificate:
    …
                X509v3 Extended Key Usage:
                    TLS Web Client Authentication
                X509v3 Subject Alternative Name:
                    email:client@example.com
    …

其他资源

  • certtool(1) 手册页