我正在尝试访问下面的 URL,Chrome 警告我通配符证书对此域无效。
起初我认为这是 chrome 如何处理通配符证书中带有许多点的 URL 的一个怪癖,但是我在警告中看到了这个文本,也无法点击
您无法继续,因为网站运营商已要求提高此域的安全性。
问题
这是 Chrome 的通配符证书和超过 2 层深的子域的问题吗?
该错误是否意味着网站所有者“做了一些事情”使通配符证书不适用于子域?
我正在尝试访问下面的 URL,Chrome 警告我通配符证书对此域无效。
起初我认为这是 chrome 如何处理通配符证书中带有许多点的 URL 的一个怪癖,但是我在警告中看到了这个文本,也无法点击
您无法继续,因为网站运营商已要求提高此域的安全性。
问题
这是 Chrome 的通配符证书和超过 2 层深的子域的问题吗?
该错误是否意味着网站所有者“做了一些事情”使通配符证书不适用于子域?
请尝试这个 Chrome hack:当浏览器显示包含无效证书消息的页面时,在键盘中输入“继续”一词,然后按 Enter。
您应该能够继续到请求的页面。
在较新版本的 Chrome 上,您可能必须输入“danger”并按 Enter 键。
这是一项称为 HTTP 严格传输安全性的功能 - 请参阅http://dev.chromium.org/sts和http://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security。
服务器 SSL 证书无效时,无法访问发送 Strict-Transport-Security 标头(或在 Chrome 中预加载,例如 apis.google.com)的站点。
为chart.apis.google.com 发送的证书对*.google.com 有效,但由于通配符仅匹配单个子域,因此chart.apis 无效。
如果 apis.google.com 未包含在 STS 列表中,Chrome 还会显示一个按钮以忽略错误并继续。
--
(Google Chart API 的正确 HTTPS 网址是https://chart.googleapis.com/chart)
此错误消息由称为“HTTP Strict Transport Security”的网络功能触发,该功能允许网站运营商告诉浏览器他们的网站只能通过安全的 HTTPS 连接进行联系。此功能在RFC 6797中指定。特别是,您可能想阅读第 12.1 节,其中说:
没有用户追索权
任何警告或错误(根据第 8.4 节(“安全传输建立中的错误”))导致的安全连接建立失败应在“无用户追索权”的情况下完成。这意味着不应向用户呈现一个对话框,让她选择继续。相反,它应该与服务器错误类似地对待,用户在与目标 Web 应用程序交互方面除了等待和重试之外无能为力。
本质上,“任何警告或错误”是指任何会导致 UA 实现向用户宣布连接建立不完全正确的任何事情。
不这样做,即允许用户求助,例如“点击警告/错误对话框”,是中间人攻击的秘诀。如果 Web 应用程序发布 HSTS 策略,那么它就隐含地选择了“无用户追索权”方法,即所有证书错误或警告都会导致连接终止,没有机会“欺骗”用户做出错误的决定并损害自己.
因此,如果您是看到此错误消息的网站用户,您应该等待;除了向网站所有者报告问题并等待他们解决之外,您无能为力。
然而,值得注意的是,Chrome 并不完全符合此政策,因为它确实有办法绕过错误消息,即当您看到错误消息时在键盘上输入特定字符串。此功能是故意设计为晦涩难懂的,以防止不完全了解自己在做什么的用户为了摆脱错误而损害自己的安全性,出于对这一目标的尊重,我不会在此处发布字符串,我也鼓励其他人避免这样做。此页面在 Google 上的查询“您无法继续,因为网站运营商已要求提高此域的安全性。”在 Google 上的排名很高,因此搜索错误消息的不知情的用户可能会在这里结束。
如果您是开发人员或安全专家,并且您完全了解绕过此警告的含义,您可以在文件的 Chrome 源代码中找到当前的绕过字符串(base64 编码以增加晦涩)components/security_interstitials/core/browser/resources/interstitial_large.js
。当您看到 TLS 安全错误页面时,将您在 Chrome 中找到的(解码的)字符串键入将绕过该页面并强制 Chrome 加载该站点。(您可以在https://subdomain.preloaded-hsts.badssl.com/ 上进行测试。)请负责任地使用此信息。
另外,既然您问了,我还应该注意,这与通配符证书无关。通配符证书仅匹配单个级别的子域,这并不特定于 Chrome。有关详细信息,请参阅RFC 6125,第 6.4.3 节。