长话短说:
如何阻止 chrome 拒绝加载被 OpenDNS 阻止的页面(服务器已明确请求 HTTPS)?
长问题:
我所在组织在使用 Chrome 时遇到了很大问题。我使用 DNS 来管理网站拦截,拦截那些不合适的网站,这些网站可能会对我所在的组织造成风险。
我只想在网络上使用 Chrome,因为 Internet Explorer 与我们使用的某些网站存在兼容性问题(我们无法更改此问题或使用其他网站)。因此,使用 Internet Explorer 不是解决方案。
出于多种原因,我不想安装其他浏览器。主要是因为重写我们使用的自定义插件很困难。
然而,最近我遇到了很多 Chrome SSL 错误问题。我无法使用自定义 OpenDNS 阻止页面,该页面使用联系表单来请求解除阻止。
Chrome 通常会阻止请求 HTTPS 的网站(一个很好的例子是 Facebook)使用 OpenDNS。一些网站https://internetbadguys.com(OpenDNS 示例)这意味着 chrome 拒绝加载阻止页面,解释该网站已被阻止。相反,他们经常致电 IT 支持,但他们想要一个解决方案,因为他们厌倦了收到大量 SSL 错误。
我尝试过寻找关闭此功能的方法。我尝试过:
- 输入“proceed”。没有用。
- 输入“proceed”,按回车键。没有用
- 从互联网指南中,我无法在 Chrome 中再找到网络钓鱼和反恶意软件。
- 未使用 HTTPS。但是大多数网站都会自动重定向到 HTTPS。因此错误不断出现。
- 检查了我的时钟。它们是正确的。
有人知道如何禁用、绕过或解决这个“功能”吗?
编辑:这是我正在谈论的一个例子 - 我在谷歌图片上发现了它。
注意:我不会屏蔽 Google。
编辑 2:我的时钟是正确的。我也无法停止使用 OpenDNS。
答案1
我完全同意你的观点。我们公司使用 OpenDNS 来屏蔽某些网站。YouTube.com 就是其中之一。但是,我们也会向员工发放“绕过代码”,以绕过被屏蔽的网站。具体操作如下:
- 用户浏览 YouTube.com,该网站会自动重定向到 SSL
- OpenDNS 阻止 youtube.com 域名
- Chrome 需要来自 youtube.com 的 SSL,但响应实际上来自 OpenDNS……因此证书不匹配。
所以问题是 - 如果 Chrome 甚至没有给你选择,你如何使用绕过代码绕过 OpenDNS?
替代方案:使用 Firefox 或(我很痛苦地建议这样做)Internet Explorer。
答案2
那么... 你重定向了真正的 Google 网站,并在 Google 浏览器注意到你拦截了 Google 网站时发出抱怨?
从源代码构建 Chrome 并将其部署到您的企业。或者停止使用 OpenDNS。
答案3
您的建议基本上是要求破坏 SSL 安全性。
Chrome 具有称为固定证书的功能,其中知名网站的证书存储在浏览器内部。
这意味着,只要出现除所需目的地证书以外的其他证书,浏览器就会发出有关中间人攻击的警告。
这是一个安全功能,不应被禁用。
答案4
劫持 SSL 并提供无效证书是一种不好的做法,人们每次遇到这种情况都需要投诉。根据您的描述,听起来 OpenDNS 就是在做这种劫持。
我之所以认为这是一种糟糕的做法,是因为它可能会导致一些用户认为劫持 SSL 存在正当理由,这种误解不利于安全。
所以你对此能做些什么?
如果您想继续使用 OpenDNS,我建议您找到他们劫持的连接所指向的 IP 地址。在网络边缘,阻止除端口 80 之外的所有到该 IP 地址的传出连接。确保 TCP SYN 数据包收到 TCP RST 数据包作为回应。发送 TCP 堆栈不能保证很好地处理以 ICMP 错误进行响应或简单地丢弃 SYN。
如果连接在 DNS 层被劫持,并且在尝试连接到端口 443 时发送 TCP RST,则浏览器将显示其自己的错误消息,例如“此网页不可用”,这比证书警告要好得多。
您仍然可以向连接到端口 80 的用户显示自定义错误消息,但正如其他人指出的那样,您不能使用 HTTPS 来执行此操作,因为 HTTPS 的全部目的就是防止这种情况。
为什么用户首先会连接到端口 443 而不是端口 80?至少有三个可能的原因:
- 用户实际上
https://
在浏览器中输入了内容。 - 浏览器已将 http 重定向到 https 缓存。
- 该域启用了严格的传输安全,并且浏览器知道这一点。
在这些情况下,您无法向用户提供自定义错误页面,因此您需要事先让他们知道如何请求解除阻止。