【问题标题】:Getting mixed-content errors even though I’m only using https URLs即使我只使用 https URL,也会出现混合内容错误
【发布时间】:2017-07-27 02:08:13
【问题描述】:

在为多个资产切换到 SSL 后,我的网站上到处都是 SSL 警告消息:

混合内容:“https://example.com”处的页面是通过 HTTPS 加载的, 但请求了不安全的脚本“http://example.com/script.js”。这 请求已被阻止;内容必须通过 HTTPS 提供。

  • 我检查了页面源,每个脚本/css 都是通过 https 请求的。
  • 我什至使用代码检查器检查了动态创建的 html。
  • 我禁用了 Javascript,以防脚本动态加载这些资产。

这些东西都没有显示单个 http:// 请求。我没有想法尝试找出导致这种情况的原因。有什么想法或建议吗?

【问题讨论】:

  • 在哪些浏览器中?
  • Chrome、Firefox、Safari、Opera、傲游云、安卓股票浏览器
  • 那么您是否在您的源代码中找到了请求https://example.com/script.js 的任何地方(即它报告的 URL 的 https 版本)?无论如何,如果您在浏览器地址栏中输入https://example.com/script.js,它会解析还是只是重定向到http://example.com/script.js(非https)?
  • 你明白了!它将一些 https:// 资产重定向到 http:// 但不是全部,只有一些。我猜 nginx 服务器有一些配置文件在某处搞砸了..
  • 干杯,很高兴你明白了。是的,我认为如果有人通过并只是将http URL 更改为https 而不检查它们是否重定向,就会发生这种情况。我不确定在 Stackoverflow 上是否有一个很好的答案来解决这个问题,所以我现在会尝试制定一个并将其添加为答案,以便我们在这里找到一个。

标签: ssl mixed-content


【解决方案1】:

当看到关于 http://example.com/script.js(非 https)URL 的混合内容消息实际上并未出现在您的源中的任何位置时,遵循的基本策略是:

  1. 将 URL 中的 http 替换为 https 并将其放入浏览器的地址栏中:https://example.com/script.js
  2. 如果您的浏览器从该https://example.com/script.js URL 重定向回(非https)http://example.com/script.js,那么您已经找到原因:example.com/script.js 实际上不能从https URL 获得,并最终导致即使您的来源请求 https URL,也会从 http URL 获得服务。

【讨论】:

    【解决方案2】:

    我对这个问题的 2 美分。

    我有一个项目托管在一个运行良好的域上。

    我需要使其国际化,因此我将主分支克隆到新分支,进行一些必要的文本更改并使用新分支中的代码部署新站点(新域)。

    一切正常,除了 1 个由于混合内容而被阻止的 ajax 调用(api 路由)。

    首先,我检查了这三件事:

    1. 我在开发工具中检查了网络选项卡,它实际上是通过 https 加载的。
    2. 我直接在浏览器中打开文件,是https。
    3. 我尝试以 http:// 打开它,它会自动重定向到 https://

    这很奇怪,因为这两个域都使用 Cloudflare,并且它们的后端设置相同,代码相同(新的只有文本更改)但是对于新设置,1 个特定 api 路由出现控制台错误,所有其他(整个页面大约 20 多个 ajax 请求)都可以正常工作。他们甚至使用相同的函数来发出 Ajax 请求,所以这绝对不是配置错误。

    经过一番调查,我发现了问题:

    “错误”的呼叫以/ 结束。例如,所有其他调用均针对:

    https://example.com/api/posts
    https://example.com/api/users
    

    这个特定的人正在向

    https://example.com/api/todos/
    

    最后的斜线使它因混合内容问题而失败。我不确定为什么这会导致问题以及它在原始站点上如何不是问题(因为相同的 ajax 调用工作得很好),但它确实解决了我的问题。

    如果我找出导致/ 如此惨败的原因,我会发布更新。

    【讨论】:

      猜你喜欢
      • 2021-05-08
      • 1970-01-01
      • 1970-01-01
      • 2015-02-11
      • 1970-01-01
      • 2016-04-16
      • 1970-01-01
      • 2022-08-03
      • 1970-01-01
      相关资源
      最近更新 更多