Ssl F5负载平衡器后面的主站点子文件夹中的站点iframe存在混合内容错误

Ssl F5负载平衡器后面的主站点子文件夹中的站点iframe存在混合内容错误,ssl,iis,iframe,mediawiki,Ssl,Iis,Iframe,Mediawiki,我的配置: 没有证书的IIS站点(看起来像带有Windows Server 2012R2的v6.2) 通过F5负载平衡器进行SSL访问 第二个站点(mediawiki,最新版本),作为同一站点子文件夹中的应用程序 我正在尝试将第二个站点作为iframe包含在我在IIS上运行的网站的子文件夹中。这些站点通过负载平衡器进行访问。实际站点使用http,因为它没有证书。负载平衡器有一个Digicert证书,我假设它充当反向代理 所以,我可以通过https访问每个站点,和。所有链接似乎都显示https

我的配置:

  • 没有证书的IIS站点(看起来像带有Windows Server 2012R2的v6.2)
  • 通过F5负载平衡器进行SSL访问
  • 第二个站点(mediawiki,最新版本),作为同一站点子文件夹中的应用程序
我正在尝试将第二个站点作为iframe包含在我在IIS上运行的网站的子文件夹中。这些站点通过负载平衡器进行访问。实际站点使用http,因为它没有证书。负载平衡器有一个Digicert证书,我假设它充当反向代理

所以,我可以通过https访问每个站点,和。所有链接似乎都显示https。对于子文件夹,我查看了主页上的网络流量,没有看到任何不是https的URL

因此,我将第二个站点作为iframe粘贴在主站点中,浏览器不会加载它,抱怨它不安全。看看FF的控制台输出,它说

Blocked loading mixed active content "http://site.xxx/mediawiki"
在iframe中,我指定了子文件夹的安全FQDN。我还尝试了一个相对路径,但得到了完全相同的结果

<iframe src="https://site.xxx/mediawiki"></iframe>
我还尝试在相同的设置中使用https设置主站点的FQDN


有没有想过为什么会切换到http

解决这个问题的方法是在url后面加上最后一个斜杠,这样它就不会重定向(不知道技术原因,但我发现了)

MVC 5

我还在主页上使用了MVC5,您希望允许使用iFrame,所以请将其放在Global.asax.cs中

    protected void Application_Start()
    {
      AntiForgeryConfig.SuppressXFrameOptionsHeader = true;
     }
另外,因为我用我的自定义广告代码对主站点进行了身份验证,所以我必须确保它不会在子页面上强制它,而子页面不能这样做(它是一个单独的PHP网站,而不是Microsoft代码)


...

我在试图通过iframe包含一个基于Jekyll的站点时遇到了这个问题,也在负载平衡器后面,这个解决方案(拖尾正斜杠)为我解决了这个问题,非常感谢。在回答您的问题时,您没有看到任何非https流量的原因是浏览器直接阻止了请求。这也让我大吃一惊,我的iframe仍然是
https://url/dir
因为发出请求的请求
http://url/dir/
已被拒绝。具有讽刺意味的是,如果它没有被拒绝,我的负载平衡器会强迫它使用https,就像你的一样,但我们走了。。
<iframe src="https://site.xxx/mediawiki/"></iframe>
$wgApiFrameOptions = 'SAMEORIGIN';
$wgEditPageFrameOptions = 'SAMEORIGIN';
    protected void Application_Start()
    {
      AntiForgeryConfig.SuppressXFrameOptionsHeader = true;
     }
  <location path="." inheritInChildApplications="false">
    <system.web>
        ...
    </system.web>
   </location>