![SSL 证书和 DNS CNAME](https://linux22.com/image/691942/SSL%20%E8%AF%81%E4%B9%A6%E5%92%8C%20DNS%20CNAME.png)
我想知道在以下情况下 SSL 证书是否有效并被接受。在每种情况下,一个 DNS 名称都会返回另一个 DNS 名称的 CNAME 记录,并且客户端根据别名连接到服务器:
1) DNS 名称www.example.com
返回 的 CNAME 记录www.example2.com
。 IP 地址为 的服务器www.example2.com
正在运行 Web 服务器。 Web 浏览器使用名称连接到站点https://www.example.com
(解析为 CNAME www.example2.com
,然后解析为 IP 地址)。 服务器返回的 SSL 证书仅适用于www.example2.com
。 浏览器是否应该将证书视为对此连接有效? 此实现是否基于正在使用的浏览器定义,还是行为由标准定义?
2) DNS 名称mx.example.com
返回 的 CNAME 记录mx.example2.com
。 IP 地址为 的服务器mx.example2.com
正在运行具有 SSL 支持的 SMTP 服务器。 SMTP 客户端(例如邮件传输代理)使用 名称mx.example.com
(将其解析为 CNAME mx.example2.com
,然后解析为 IP 地址)连接到服务器。 服务器返回的 SSL 证书仅适用于mx.example2.com
。 客户端是否应该认为证书对此连接有效? 此实现是否基于正在使用的客户端定义,还是此行为由标准定义?
3) DNS 名称imap.example.com
返回 的 CNAME 记录imap.example2.com
。 IP 地址为 的服务器imap.example2.com
正在运行具有 SSL 支持的 IMAP 服务器。邮件应用程序使用 名称imap.example.com
(将其解析为 CNAME imap.example2.com
,然后解析为 IP 地址)连接到服务器。服务器返回的 SSL 证书仅适用于imap.example2.com
。邮件应用程序是否应该将证书视为对此连接有效?此实现是否基于正在使用的应用程序定义,还是此行为由标准定义?
答案1
对于证书验证来说,唯一重要的是用于连接的域名。由于此名称在 DNS CNAME 上不会更改,因此您将获得:
DNS 名称 www.example.com ... Web 服务器 ... 服务器返回的证书仅适用于 www.example2.com
浏览器将会失败但可能会为您提供覆盖此决定的选项。
DNS 名称 mx.example.com ...服务器返回的 SMTP ...证书仅适用于 mx.example2.com
正确检查证书的邮件客户端将会失败,但许多邮件客户端都有忽略证书失败的选项。大多数邮件服务器不会正确检查证书,因此会接受任何邮件。
DNS 名称 imap.example.com ... IMAP .. 邮件应用程序使用名称 imap.example.com 连接到服务器
与 SMTP 相同,即,如果它们正确检查证书,它们将会失败,但许多人都有忽略证书错误的选项。