![发出不带 cname 的 TLS](https://linux22.com/image/640157/%E5%8F%91%E5%87%BA%E4%B8%8D%E5%B8%A6%20cname%20%E7%9A%84%20TLS.png)
在我刚刚将网络服务器的 IP 地址提供给颁发 TLS 证书的人后,他告诉我,他需要我服务器的 CName 才能颁发证书。这是一个内部项目,所以我们还没有获得域名。他说他必须有一个 cname 才能颁发证书,这是对的吗?还是我给他的 IP 就可以了?
答案1
证书需要针对完全限定域名 (FQDN) 颁发。您不需要使用 CNAME,只需创建指向相关 IP 地址的 A 记录即可。
颁发证书的 CA 需要能够验证域名的所有权。
如果您愿意,您可以轻松使用现有域名的子域名。只需提供子域名(例如 foo-server.example.com)作为证书的 CommonName。
在您的问题和某些答案中,CN 和 CNAME 之间似乎存在一些混淆。
CN == CommonName 的缩写。它是颁发证书的 DN 或 DistinguishedName 的一部分。
CNAME == 规范名称的缩写。它是一种 DNS 条目,基本上使一个 FQDN 成为另一个 FQDN 的别名。
CN != CNAME。DN != FQDN。希望这有助于澄清。
答案2
当浏览器使用 X.509 证书验证站点身份时,它会将地址栏中的名称与证书本身上列出的名称进行检查。
如果您希望用户能够使用名称而不是 IP 地址连接到服务器,则在颁发证书之前,您需要知道您打算使用什么名称来连接到您的服务器(例如您的虚拟主机或主机名)。如果您计划使用多个基于名称的虚拟主机,您将在证书中列出所有名称。
答案3
要发布的证书需要有某种名称,即使它是 test.contoso.net。如果这是内部生成的 SSL 证书,那么撤销它并创建新证书就没什么大不了的。但是,如果这是来自外部供应商(例如,Comodo、GoDaddy、Verisign 等)的 SSL 证书,那么撤销并创建新证书通常需要花钱或积分。此外,第三方不会为您不拥有的域名制作证书。
答案4
如果您的目的是使用其 IP 地址访问您的 Web 服务器(例如http://192.168.1.10
),那么就可以了。
如果您打算通过主机名(或任何其他别名)访问服务器(例如:),http://server
那么您必须在请求中包含主机名和别名(cname),可能是 san。