为什么我的浏览器认为 https://1.1.1.1 是安全的?

Del*_*tik 136 security browser web https ssl-certificate

当我访问https://1.1.1.1 时,我使用的任何网络浏览器都认为该 URL 是安全的。

这是谷歌浏览器显示的:

谷歌浏览器 65.0.3325.181 地址栏显示 https://1.1.1.1

通常,当我尝试通过其 IP 地址访问 HTTPS 站点时,会收到如下安全警告:

谷歌浏览器 65.0.3325.181 地址栏显示 https://192.168.0.2

根据我的理解,站点证书需要匹配域,但谷歌浏览器证书查看器没有显示1.1.1.1

证书查看器:*.cloudflare-dns.com

GoDaddy 的知识库文章“我可以申请内网名称或 IP 地址的证书吗?” 说:

否 - 我们不再接受 Intranet 名称或 IP 地址的证书请求。这是一项全行业标准,而不是特定于 GoDaddy 的标准。

强调我的)

并且:

因此,自 2016 年 10 月 1 日起,证书颁发机构 (CA)必须撤销使用Intranet 名称或IP 地址的SSL 证书

强调我的)

和:

您应该重新配置服务器以使用完全限定域名 (FQDN),例如www.coolexample.com而不是保护 IP 地址和 Intranet 名称。

强调我的)

早在 2016 年 10 月 1 日的强制撤销日期之后,证书1.1.1.1已于 2018 年 3 月 29 日颁发(如上图所示)。


怎么可能所有主流浏览器都认为https://1.1.1.1是可信的 HTTPS 网站?

Del*_*tik 101

GoDaddy 文档有误。证书颁发机构 (CA) 必须撤销所有 IP 地址的证书是不正确的……只是保留的 IP 地址

来源:https : //cabforum.org/internal-names/

https://1.1.1.1的 CA是DigiCert,在撰写本答案时,它确实允许购买公共 IP 地址的站点证书。

DigiCert 有一篇关于此的文章,称为Internal Server Name SSL Certificate Issuance After 2015

如果您是使用内部名称的服务器管理员,则需要重新配置这些服务器以使用公共名称,或者在 2015 截止日期之前切换到由内部 CA 颁发的证书。所有需要公共信任证书的内部连接都必须通过公开且可验证的名称完成(这些服务是否可公开访问并不重要)。

强调我的)

Cloudflare 只是1.1.1.1从受信任的 CA那里获得了其 IP 地址的证书。

解析https://1.1.1.1的证书显示该证书使用主题备用名称 (SAN) 来包含一些 IP 地址和普通域名:

deltik@node51 [~]$ openssl s_client -showcerts -connect 1.1.1.1:443 < /dev/null 2>&1 | openssl x509 -noout -text | grep -A1 'Subject Alternative Name:'
            X509v3 Subject Alternative Name: 
                DNS:*.cloudflare-dns.com, IP Address:1.1.1.1, IP Address:1.0.0.1, DNS:cloudflare-dns.com, IP Address:2606:4700:4700:0:0:0:0:1111, IP Address:2606:4700:4700:0:0:0:0:1001
Run Code Online (Sandbox Code Playgroud)

此信息也位于“详细信息”选项卡下的 Google Chrome 证书查看器中:

证书查看器:详细信息:*.cloudflare-dns.com

此证书对所有列出的域(包括通配符*)和 IP 地址均有效。

  • 我认为这与其说是误导不如说是误会。它应该是括号,因为“必须撤销使用内联网(名称或 IP 地址)的 SSL 证书”,而不是“必须撤销使用(内联网名称)或 IP 地址的 SSL 证书”。 (11认同)
  • 嗯,它_确实_说“内联网名称或 IP 地址”。Intranet 名称或 Intranet IP 地址。这没有错,只是OP只是有选择地阅读它。 (3认同)

Pet*_*des 98

英语含糊不清。你是这样解析的:

(intranet names) or (IP addresses)
Run Code Online (Sandbox Code Playgroud)

即完全禁止使用数字 IP 地址。与您所看到的相匹配的含义是:

intranet (names or IP addresses)
Run Code Online (Sandbox Code Playgroud)

即禁止私有 IP 范围(如 10.0.0.0/8、172.16.0.0/12 和 192.168.0.0/16)的证书,以及公共 DNS 上不可见的私有名称。

公共可路由 IP 地址的证书仍然是允许的,只是一般不建议大多数人使用,尤其是那些不拥有静态 IP 的人。


此声明是建议,而不是声称您无法保护(公共)IP 地址。

您应该重新配置服务器以使用完全限定域名 (FQDN),例如 www.coolexample.com,而不是保护 IP 地址和 Intranet 名称

也许 GoDaddy 的某个人误解了措辞,但更有可能的是,他们希望让建议保持简单,并建议在证书中使用公共 DNS 名称。

大多数人不为他们的服务使用稳定的静态 IP。提供 DNS 服务是真正需要拥有稳定的知名 IP 而不仅仅是名称的一种情况。 对于其他任何人,将您当前的 IP 放入 SSL 证书会限制您未来的选择,因为您不能让其他人开始使用该 IP。他们可以冒充您的网站。

Cloudflare.com自己控制着 1.1.1.1 IP 地址,并且在可预见的未来不打算用它做任何不同的事情,因此他们将他们的 IP 放在他们的证书中是有意义。特别是作为 DNS 提供商,HTTPS 客户端更有可能按编号访问其 URL,而不是任何其他站点。

  • 迂腐地,Cloudflare *不*“拥有” 1.1.1.1 地址。它是 [由 APNIC 实验室拥有](http://wq.apnic.net/apnic-bin/whois.pl?searchtext=1.1.1.1),谁允许 Cloudflare 在那里运行 DNS 解析器 [以换取 Cloudflare 的帮助在研究大量错误地发往该 IP 的垃圾数据包时](https://blog.cloudflare.com/annoucing-1111/)。 (14认同)
  • 迂腐,@Kevin,APNIC 也不拥有它。【本文】(https://www.internetgovernance.org/2010/11/29/ownership-rights-in-ip-addresses-a-legal-analysis/)提到所有权问题,并使用“分配到”。IANA 是 ICANN 的一部分,将地址范围分配给 APNIC,后者将此类地址分配给 Cloudflare。IPv4 地址只是一种写 0-4294967296 数字的奇特方式(如果您在许多操作系统中 ping 16843009,那么您会发现您收到来自 1.1.1.1 的响应)并且美国不会承认拥有一个数字(因此为什么取名“奔腾”) (12认同)
  • 这正是我困惑的原因。我向 GoDaddy 发送了一个建议,以改进 [文章](https://www.godaddy.com/help/can-i-request-a-certificate-for-an-intranet-name-or-ip-地址-6935)。希望他们会修复它以澄清“(内部服务器名称)或(保留的 IP 地址)”,如 [在 CAB 论坛上](https://web.archive.org/web/20180213030525/https://cabforum.org) /内部名称/)。 (5认同)
  • 英特尔的事情是商标的情况,而不是所有权…… (5认同)
  • @TOOGAM:我的意思是,在我专门链接的 whois 系统中,1.1.1.1 分配给 APNIC 实验室。如果您要选择分配与所有权的问题,请不要扭曲“已分配”的含义。 (3认同)

Mic*_*ank 45

看起来证书主题替代名称包含 IP 地址:

Not Critical
DNS Name: *.cloudflare-dns.com
IP Address: 1.1.1.1
IP Address: 1.0.0.1
DNS Name: cloudflare-dns.com
IP Address: 2606:4700:4700::1111
IP Address: 2606:4700:4700::1001
Run Code Online (Sandbox Code Playgroud)

传统上,我猜您只会将 DNS 名称放在此处,但 Cloudflare 也将其 IP 地址放在了此处。

https://1.0.0.1/也被浏览器认为是安全的。

  • @DmitryGrigoryev:但它确实证明了这样的证书 _was_ 已交付,这是问题中的一个主要混淆点(OP 找不到证书中列出的 1.1.1.1) (18认同)
  • @DmitryGrigoryev - 如果问题是“为什么我的浏览器认为 https://1.1.1.1 是安全的?” (本页的标题)或“所有主流浏览器怎么可能认为 https://1.1.1.1 是受信任的 HTTPS 网站?” (正文中唯一的实际问题),那么“因为 1.1.1.1 在证书中被列为 SAN”清楚地回答了这个问题。 (4认同)
  • 这个答案确实回答了作者的问题。虽然作者更详细地解释了他们的困惑,但这表明了一个事实,即所涉及的证书确实有效。由于问题的作者从未向我们提供 GoDaddy 实际所说的内容,因此很难用其他任何方式回答问题。 (3认同)