2.8. 使用 GnuTLS 为 TLS 客户端证书创建私钥和 CSR
要获取证书,您必须首先为您的客户端创建私钥和证书签名请求(CSR)。
流程
在客户端系统上生成私钥,例如:
$ certtool --generate-privkey --sec-param High --outfile <example-client.key>
可选:使用您选择的文本编辑器来准备一个简化创建 CSR 的配置文件,例如:
$ vim <example_client.cnf> signing_key encryption_key tls_www_client cn = "client.example.com" email = "client@example.com"
使用之前创建的私钥创建 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>
后续步骤
- 将 CSR 提交给您选择的 CA 进行签名。或者,对于可信网络中的内部使用场景,请使用您的私有 CA 进行签名。请参阅 第 2.9 节 “使用私有 CA 为 带有 GnuTLS 的 CSR 发布证书” 了解更多信息。
验证
检查证书的人类可读部分是否与您的要求匹配,例如:
$ 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)
手册页