购买证书时的命名约定是什么(如果有)?
当为特定服务器购买 TLS/HTTPS 证书时,我自然会默认使用该服务器的名称。例如,如果服务器名为 MOONSERVER,我会设置主题x509 证书到 MOONSERVER。
此外,我需要使用另一个证书进行消息签名。我应该怎么称呼它?有效名称的规则是什么?例如,连字符、下划线等可以吗?名称区分大小写吗?
答案1
当您购买这些证书时,这些字段的内容可能会由证书销售商的用户界面控制,希望证书销售商能够对您输入的值进行一些健全性检查。
您应该在主题领域取决于应用程序等。
HTTPS 只是 HTTP over TLS 的一种实现,受 RFC 2818 管辖,该规范规定服务器标识必须使用主题备用名称(SAN)扩展域名字段(如果存在)。
CA/浏览器论坛是一个由商业 CA 和浏览器供应商组成的联盟,它增加了更严格的限制,并要求服务器标识仅使用 SAN 扩展(即不检查主题字段中的任何服务器 DNS 名称)。因此,如果您有一个 Web 应用程序,其中最终用户使用通用 Web 浏览器(几乎我们所有人都使用这种浏览器),那么您将需要遵循 CA/B 论坛的要求,并将主机的 DNS 名称放在 SAN 中。
请注意,TLS 本身没有定义任何名称限制,因此使用 TLS 的其他应用程序可能有不同的要求。对于 X.509 证书的非 TLS 使用(例如代码签名),情况也是如此。RFC 6125 中提供了有关 DNS 名称解释的指导。
定义这些证书的文档中规定了字符等方面可接受的内容。RFC 5280 适用于 Internet 上使用的证书,X.509 适用于所有证书(包括 Internet 上使用的证书)。后者指的是大量文档,例如 X.500、X.501、X.520、X.521 和 X.680。
X.520 第 6 节定义了许多可用于主题领域。这是一本令人激动的睡前读物,所以如果你没有时间,那就坚持读一读故事的基本人物吧。可打印字符串类型:
A..Z a..z 0..9 (space)'()+,-./:=?
这可能不符合政治正确,因为大多数非英语语言不会被涵盖。另一种方法是使用utf8字符串包含了世界上大多数字符的类型。