为多域生成 CSR [关闭]

Posted

技术标签:

【中文标题】为多域生成 CSR [关闭]【英文标题】:Generating CSR for multi-domain [closed] 【发布时间】:2012-02-27 19:37:37 【问题描述】:

如何为多域生成 CSR。

我发现为单个域生成 CSR 如下:

openssl req -new -newkey rsa:2048 -nodes -keyout yourdomain.key -out yourdomain.csr

但是如何生成 CSR 多域

【问题讨论】:

ServerFault 可能更多:投票支持。 布鲁诺回答的最后一段是最佳答案恕我直言-不用担心,只需在 CSR 中指定主域或单个域,稍后在生成证书时添加其他域.使用 ssls.com 为我工作 【参考方案1】:

对于支持多个域的 X.509 证书,它必须使用多个主题备用名称 DNS 条目,根据 RFC 2818 (HTTP over TLS)(或 RFC 6125):

如果存在 dNSName 类型的 subjectAltName 扩展,则必须 用作身份。否则,(最具体的)通用名称 必须使用证书的主题字段中的字段。虽然 通用名称的使用是现有的做法,它已被弃用并且 鼓励证书颁发机构改用 dNSName。

使用指定的匹配规则执行匹配 [RFC2459]。如果给定类型的多个身份存在于 证书(例如,多个 dNSName 名称,任何一个匹配 的集合被认为是可以接受的。)

如this document 中所述(除了我将-des3 也用于genrsa 命令,以保护私钥):

复制您的初始 openssl.cnf 文件(在 Linux 上,原始文件可能位于 /etc 下)。 编辑它以在[ req ] 部分添加req_extensions = v3_req。 编辑它以在[ v3_req ] 部分添加subjectAltName=DNS:www.example.com,DNS:www.other-example.com(您需要的每个主机名一个DNS: 条目)。 让 OpenSSL 使用该配置文件。打电话给OPENSSL_CONF=/path/to/your/openssl.cnf openssl req ...

话虽如此,我不会太担心在 CSR 中设置任何扩展。任何好的 CA 都应该忽略您在 CSR 中设置的任何内容,只设置他们在颁发实际证书时实际验证的内容。他们会很乐意替换您的主题 DN(例如国家、组织等)中的任何 RDN 以及任何扩展名(SAN 或密钥用法)。首先,如果他们按照申请人在 CSR 中的要求允许任何延期,这将是一个安全风险,因为有些申请人真的可以得到任何东西。其次,这就是他们赚取额外收入的方式,通过向您收取在这里和那里设置一些位(例如代码签名扩展)的费用:他们将确保您只获得您在证书中支付的费用。不过,我知道您可能希望将您要求的所有名称都放在您的 CSR 中,以确保安全。

【讨论】:

非常感谢您对指定您计划在 CSR 中保护的所有域名并不重要的评论。我对此感到困惑,然后接受了该建议,果然,ssls.com 有一种机制可以在导入 CSR 后添加其他域。

以上是关于为多域生成 CSR [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何申请多域名SSL证书?

SEO优化多域和多语言网站[关闭]

如何使用 OpenSSL 生成带有 SubjectAltName 的自签名证书? [关闭]

了解将 .pem 文件转换为 .pfx 的 OpenSSL 步骤 [关闭]

我应该为多客户端应用程序使用单个还是多个数据库设置? [关闭]

怎么开启HTTPS服务