操作系统/浏览器是否根据目的地处理 CNAME 证书?

操作系统/浏览器是否根据目的地处理 CNAME 证书?

我 有 一个 网站example.com, 并且www.example.com只是 一个 CNAME 到example.com.

example.com仅具有由 Lets Encrypt 颁发的证书example.com

在 Web 服务器 (Nginx) 上,我已将http://example.com(HTTP 301) 重定向到https://example.com

在 macOS 上的 Safari 上,的访问者www.example.com将收到一条安全警告,提示证书错误,因为它是颁发给example.com而不是www.example.com

在Windows Chrome上,似乎没有这样的警告。

哪一个应该是正确的行为?

答案1

哪一个应该是正确的行为?

Safari 的行为是正确的,尽管我有点困惑为什么 Chrome 没有发出警告,因为根据我的经验,Chrome 历来处于确保整个链上的 HTTPS 内容合法性的前沿。

至于您的证书,如果设置为example.com而没有设置,www.example.com那么您将只能从 获得 HTTPS example.com。如果您尝试使用example.comwww.example.com 的 ,那么浏览器将警告您不匹配。

这是因为——归根结底—— wwwinwww.example.com只是一个历史惯例,而那www只是一个可以真正指向任何地方的子域名。因此发出警告。正如网站点击SSL明确指出:

SSL 是基于加密的协议。它只保护已颁发证书的域名。因此,如果 SSL 证书是为非 www 域名颁发的,则它只保护该域名。

example.com因此,如果您想在两个域上使用 HTTPS,那么您肯定需要和 的证书www.example.com

相关内容