如何允许受防火墙保护的 2 个服务器之间的混合内容

问题描述 投票:0回答:1

我的配置如下:

  • PFsense 防火墙
  • 在该防火墙后面有一个具有 3 个域的“Web”服务器,包括一个“dev.domain.tld”,可以使用常规“https://dev.domain.tld”从 Web 访问它,也有一个 LAN 地址 192.168 .0.10
  • 在同一防火墙后面,无法从外部直接访问的“Applis”服务器(除非使用特定端口进行 ssh,PFSense 上的特殊 NAT 规则,...),LAN 地址为 192.168.0.11

我在“https://dev.domain.tld”上创建了一个“index.html”文件,其中包含一个 iframe,它应该显示来自“Applis”服务器的内容:

<iframe id="streamlit" title="Test Streamlit" src="http://192.168.0.11:5001"></iframe>

从“Web”运行 curl 调用时:

curl http://192.168.0.11:5001

我从 192.168.0.11 得到了正确的答案(不确定它是否相关,但它是一个 dockerized Streamlit 应用程序)。 现在我的 iframe 不起作用,显然是因为 docker 通过“http://”为应用程序提供服务。错误,法语:

Blocage du chargement du contenu mixte actif (mixed active content) « http://192.168.0.11:5001/

我想知道可以做些什么来显示这种使用 http 服务的 iframe。我尝试了

<meta http-equiv="Content-Security-Policy" ...
的许多组合来允许这个......我知道 CSP 的目标和阻止“混合活动内容”并且它不能被绕过,但这是在 LAN 上的防火墙后面,我认为可能有其他人有同样的问题......

如果无法做到这一点,我想我将不得不考虑通过 https 从 docker 提供我的应用程序 ...

docker content-security-policy pfsense
1个回答
0
投票

出于开发目的,您可以通过 http 加载主页或修改浏览器的混合内容设置。以下是一些在 Chrome 中可能仍然有效的方法:How to get Chrome to allow mixed content?

CSP 无法阻止活动混合内容的阻塞。但是您可以使用“upgrade-insecure-requests”指令通过 https 加载所有内容以防止混合内容。但是内容当然需要通过 https 提供。

© www.soinside.com 2019 - 2024. All rights reserved.