我使用 OpenSSL 生成了许多 CSR。它简单又直接。然而,根据一些消息来源,GnuTLS 是 Ubuntu 上 SSL 的新替代品,但创建 CSR 时的询问有点复杂。
要为上述环境生成用于 ubuntu 18.04 的 CSR,请使用 Certtools。Certtools 是 GnuTLS CSR 创建工具,必须与 GnuTLS 本身分开安装。请注意,如果您使用 OpenSSL 生成 CSR,它可能无法工作。这就是我遇到的问题。显然,如果您安装 GnuTLS 代替 OpenSSL,则需要使用 Certtools 生成 CSR 和任何其他必要的文档。
当您调用 Certtools GENERATE CSR 流程时,有些问题是标准问题,很容易回答。其他问题,我不知道如何回答,也不知道它们是可选的还是必需的。 我用破折号标记了我认为比较难回答的问题 - 并请求专家用破折号对下面 CODE 部分中标记的问题给出答案或解释,说明该项目是可选的还是必需的,并且提供一个更容易理解的例子和/或对所要求内容的解释。
请注意,我确实访问过 GnuTLS 网站并阅读了所有可用文档,但是,作为 GnuTLS 的初学者,我发现这些文档对初学者不太友好。也许在某个时候,有人会为那些对 CSR 创建事宜没有完全了解的人编写一个更简单易懂、更清晰的版本。GnuTLS Certtool 文档
也就是说,当您使用 Certtools 生成 CSR 时,您将面临一系列问题......
**Generating a PKCS #10 certificate request...**
Common name:
Organizational unit name:
Organization name:
Locality name:
State or province name:
Country name (2 chars):
-Enter the subject's domain component (DC):
-Enter the subject's domain component (DC):
-UID:
-Enter a dnsName of the subject of the certificate:
-Enter a URI of the subject of the certificate:
Enter the IP address of the subject of the certificate:
Enter the e-mail of the subject of the certificate:
Enter a challenge password:
Does the certificate belong to an authority? (y/N):
-Path length constraint (decimal, -1 for no constraint):
-Will the certificate be used for signing (DHE ciphersuites)? (Y/n):
Will the certificate be used for encryption (RSA ciphersuites)? (Y/n):
-Will the certificate be used to sign code? (y/N):
-Will the certificate be used for time stamping? (y/N):
-Will the certificate be used for email protection? (y/N):
-Will the certificate be used for IPsec IKE operations? (y/N):
-Will the certificate be used to sign OCSP requests? (y/N):
-Will the certificate be used to sign other certificates? (y/N):
-Will the certificate be used to sign CRLs? (y/N):
-Is this a TLS web client certificate? (y/N):
-Is this a TLS web server certificate? (y/N):
谢谢,我希望这可以帮助其他人尝试设置 GnuTLS SSL SNI 证书
关于此主题的另一个极好的信息来源 https://help.ubuntu.com/community/GnuTLS
答案1
您可以在生成 CSR 时使用“--template”选项。模板文件将包含预填答案。certtool 将考虑此文件并为此模板文件中未提及的所有其他参数选择默认值。
示例模板文件:
$ cat client.info
organization = MYORG
cn = client
tls_www_client
encryption_key
signing_key