通过 IP 访问站点时的安全警告

信息安全 tls 领域
2021-08-16 16:10:20

当我去的时候https://www.schneier.com/,一切正常。一旦我使用它的 IP 地址 (66.33.204.254) 访问同一个站点,我就会收到一个安全警告(即使我写了类似的东西https://66.33.204.254:443/)。

google.com 的情况并非如此(我使用的是这个 IP 地址:216.58.211.14)

这是为什么?这两个网站有何不同?

UPD:这是我在输入 Google 的 IP 时看到的 GIF,那里没有警告:http: //www.giphy.com/gifs/26gYMNRlBYy9yAYnu

4个回答

这是因为您通常为主机名而不是 IP 创建 TLS 证书。更改 IP 地址是微不足道的,更改域并不常见。

如果您使用 IP 在 Firefox 中打开该站点,您将看到以下消息:

66.33.204.254 uses an invalid security certificate. 

The certificate is only valid for the following names:
 schneier.com, www.schneier.com 

打开 216.58.211.14 (Google) 会给出同样的信息。

该错误表明您访问的站点无法证明它拥有您在地址栏中输入的地址。

想象一下。你访问https://www.google.com您检查连接的证书并发现它实际上是颁发给www.DeathToAmerica.ru. 这强烈表明您的浏览器实际上并未访问 google.com。相反,您的通信已在所谓的中间人(MitM)攻击中被截获您的通信仍处于加密状态,但它们被发送到(并由其解密)未知实体。

为了防止这种情况,您的浏览器将自动检查您输入的地址是否与证书相符。每当它们不匹配时,它将显示您看到的错误。

由于您输入66.33.204.254但证书已颁发给www.schneier.com您,因此将收到错误消息。这表明您到达的站点无法证明它拥有66.33.204.254

一般来说,CA 不会为 IP 地址颁发证书。如果您需要访问不在 DNS 中的站点,并且您必须使用 https,并且您不想看到该错误,我建议您使用host entry

在您的示例 schneier.com / *.google.com 中,证书颁发给一个通用名称 (CN)。

如果您使用 IP 地址而不是域名访问网站,此 CN 字段将与您 URL 的权限部分不匹配,并且您的浏览器将返回错误(如 Google Chrome 的 NET::ERR_CERT_COMMON_NAME_INVALID)。

如果您通过 http 访问您提到的网站,您将被重定向到 https 等价物。但是,Google 会将您重定向到https://google.com,而 Schneier 会将您重定向到https://216.58.211.14前者不会导致错误,后者会(由于上述原因)。

因此,您描述的效果是由于两个 Web 服务器上的重定向配置所致。

大多数主要接受的 TLS/SSL 证书都颁发给主机名,可以通过 DNS 查找。

进行此检查的原因是为了防止潜在的中间人攻击,其中攻击可能具有完全有效的证书,但不会颁发给您尝试访问的网站。证书涉及“不可否认”领域。

在 google 的案例中,他们试图将用户重定向到域名,因为托管 Web 服务的 IP 地址可能会处理许多域名的请求(请参见下面的第二个代码框)。如果您尝试访问使用 Cloudflare 的网站,也会发生同样的事情。由于 Cloudflare 位于许多网站的前面,它不知道该服务于哪个网站,并返回一条错误消息。

66.33.204.254 uses an invalid security certificate.
The certificate is only valid for the following names:
schneier.com, www.schneier.com
Error code: SSL_ERROR_BAD_CERT_DOMAIN

谷歌会给出相同的错误代码:

216.58.211.14 uses an invalid security certificate.
The certificate is only valid for the following names:
*.google.com, *.android.com, *.appengine.google.com, *.cloud.google.com, *.google-analytics.com, *.google.ca, *.google.cl, *.google.co.in, *.google.co.jp, *.google.co.uk, *.google.com.ar, *.google.com.au, *.google.com.br, *.google.com.co, *.google.com.mx, *.google.com.tr, *.google.com.vn, *.google.de, *.google.es, *.google.fr, *.google.hu, *.google.it, *.google.nl, *.google.pl, *.google.pt, *.googleadapis.com, *.googleapis.cn, *.googlecommerce.com, *.googlevideo.com, *.gstatic.cn, *.gstatic.com, *.gvt1.com, *.gvt2.com, *.metric.gstatic.com, *.urchin.com, *.url.google.com, *.youtube-nocookie.com, *.youtube.com, *.youtubeeducation.com, *.ytimg.com, android.clients.google.com, android.com, developer.android.google.cn, g.co, goo.gl, google-analytics.com, google.com, googlecommerce.com, urchin.com, www.goo.gl, youtu.be, youtube.com, youtubeeducation.com

Error code: SSL_ERROR_BAD_CERT_DOMAIN

当您访问受 cloudflare “保护”的站点时会发生什么的图像:

通过 IP 的 Cloudflare