![SAN CSR 中需要主题备用名称吗?](https://linux22.com/image/722814/SAN%20CSR%20%E4%B8%AD%E9%9C%80%E8%A6%81%E4%B8%BB%E9%A2%98%E5%A4%87%E7%94%A8%E5%90%8D%E7%A7%B0%E5%90%97%EF%BC%9F.png)
我们希望对以下域使用 SAN SSL 证书:
- example.com(通用名称)
- abc.example.com
- def.example.com
- www.abc.example.com
- www.def.example.com
在创建此证书的 CSR 时,我是否必须将所有这些主机名(通用名称旁边)输入到主题备用名称部分?这是必需的吗?或者我可以将它们留空并仅填写通用名称吗?
这些 SAN 条目最终如何进入 SSL 证书?是通过 CSR(如果已提供)还是证书提供商可以在生成过程中添加它们,因此 CSR 中不需要 SAN?
答案1
是的,您需要包含每个主题的备用名称和CSR 的“主题备用名称”部分中的主题/通用名称。一些证书颁发机构允许您更新证书以向其添加新的 SAN,但这始终需要更新的 CSR。
DigiCert 是一家非常棒的 CA,以下是他们关于将 SAN 添加到证书的说明。
要将 SAN 添加到证书,您必须在服务器上生成新的 CSR,然后在您的帐户中提交该 CSR。如果您需要有关创建 CSR 的说明,请参阅我们的创建 CSR(证书签名请求)页面。
完整说明如下:https://www.digicert.com/multi-domain-add-subject-alternative-names.htm。
你怎么创造您的初始 CSR 将根据您创建和使用证书的平台而有所不同。
答案2
subjectAltName 是必需的,来自 RFC 2818
如果存在 dNSName 类型的 subjectAltName 扩展,则必须将其用作身份。否则,必须使用证书的“主题”字段中的(最具体的)通用名称字段。
尽管使用通用名称是现有做法,但已被弃用,并鼓励认证机构改用 dNSName。
您的证书颁发机构可以使用请求中的名称,或通过表单等方式获取其他输入。Let's Encrypt 就是一个示例,它根据您传递给 ACME 脚本的选项完全自动化请求和发出 subjectAltNames 或通配符。
关于通配符,你可以在最左边的标签中使用一个“*”,按照规则RFC 6125 6.4.3。这非常强大,您可以使用一个证书来处理所有事情。但是,如果受到攻击,攻击者将拥有与该模式匹配的任何名称的有效证书。