这是我在 Chrome 中看到的一个奇怪现象。
几天前我注意到我的博客失去了样式。可能无法加载样式表或其他资源,对吧?我几年前就设置好了,直到最近它才开始工作。
我使用 Chrome 的 DevTools 进行调查,似乎加载https://evilcorp.blog.ram.rachum.com/css/fonts.css
失败。
我与我的网站托管商的支持人员进行了沟通,结果发现没有配置 HTTPS 网站。经过进一步调查,该网站从未配置为 HTTPS。
我再次查看了我的博客的 HTML 源代码。它引用的字体文件是http://evilcorp.blog.ram.rachum.com/css/fonts.css
,请注意缺少https
。该链接确实有效。
我不明白为什么 Chrome 在明确指定 HTTP URL 时尝试加载 HTTPS 版本。这是新功能吗?我该怎么办?
答案1
您的博客地址为https://blog.ram.rachum.com/
,因此这是一个 HTTPS 页面。
当 HTTPS 页面包含 HTTP 内容时,即使主页是通过 HTTPS 提供的,HTTP 部分也可能会被攻击者读取或修改。当 HTTPS 页面包含 HTTP 内容时,其内容被称为“混合”。网页仅部分加密,因为部分内容是通过 HTTP 未加密检索的,因此被视为不安全的。
如今,现代浏览器会将混合内容视为不安全内容进行阻止,实际上是禁用 HTTP 链接。
在 Chrome 中,你可以使用以下命令强制执行:
chrome.exe --allow-running-insecure-content
但你不能强迫你的用户这样运行 Chrome。
最好的解决方案是将您的页面转换为仅使用 HTTPS 链接。