如果这有点冗长,请提前抱歉 - 但我已经深入研究了它,所以我想提供我所知道的:-)
我有一个我们为客户提供的解决方案(在 IBM XPages 中开发),例如通过 iframe。我们现在已经开始看到 iframe 无法加载内容的问题。这发生在 Safari 和 Chrome 上的私人会话中。原因是这个小 Javascript 被注入到 iframe 页面的标题中:
<head>
<script type="text/javascript">if(!navigator.cookieEnabled)window.location.href="http://fangstjournalen.dtu.dk/fangst.nsf/iframe.xsp?open\u0026assoc=49F1767931B31CD0C1258398007953C0\u0026type=1\u0026SessionID=77610D163AE659EC8C2C63FAF5E8BBA05E8C120D";
</script>
</head>
它自己的 iframe 如下所示:
<iframe src="https://fangstjournalen.dtu.dk/fangst.nsf/iframe.xsp?open&assoc=02F2DD0AA9133BDCC1258618004A6B48&type=1" width="100%" height="2100"></iframe>
如您所见,iframe 链接与 Javascript(使用http而不是https)中的链接存在差异。
在浏览器的控制台中,我看到以下消息:
[blocked] The page at https://fangstjournalen.dtu.dk/fangst.nsf/iframe.xsp?open&assoc=49F1767931B31CD0C1258398007953C0&type=1 was not allowed to display insecure content from http://fangstjournalen.dtu.dk/fangst.nsf/iframe.xsp?open&assoc=49F1767931B31CD0C1258398007953C0&type=1&SessionID=9C21D5AF363C262E3CC37D0CDFBDFBCB35528ECC.
这显然是一个合理的理由。
但是是什么添加了“错误”的内容——我该如何解决这个问题?
我们的测试系统不是 100% 等同于我们的生产系统。生产中的 Nginx 在同一台服务器上(测试中的不同服务器),在测试中我们使用 LetsEncrypt 进行 SSL - 但在生产中我们获得了证书。从托管中心。我们仅在生产中设置了ssl_session_cache - 以及其他一些小的(我认为)差异......
生产环境中 nginx 服务器的配置如下所示(省略了其他服务器的一些细节):
server {
listen 443;
server_name fangstjournalen.dtu.dk;
client_max_body_size 25m;
ssl on;
ssl_certificate /etc/nginx/ssl/fangstjournalen.dtu.dk.pem;
ssl_certificate_key /etc/nginx/ssl/fangstjournalen.dtu.dk.key;
ssl_session_cache shared:le_nginx_SSL:1m;
ssl_session_timeout 1440m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "ECDHE-....";
ssl_stapling on;
ssl_stapling_verify on;
add_header Strict-Transport-Security max-age=15768000;
# 2020.05.20/Jda - added Sync Gateway
# Use a specific url pattern to identify sync requests - and remove that part before redirecting to the db server
location /_sync {
rewrite /_sync/(.*) /$1 break;
proxy_pass http://sync_gateway;
:
:
}
# 2019.11.04/Jda - Added keepalive_timeout, proxy_read_timeout: 600 --> 900
# 2020.08.12/Jda - Added SameSite=none; Secure to cookies...
location / {
proxy_pass http://fangstjournalen.dtu.dk:8088;
proxy_redirect off;
proxy_buffering off;
proxy_http_version 1.1;
keepalive_timeout 720s;
proxy_read_timeout 900s;
proxy_set_header X-Forwarded-Port 8088;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header $WSRA $remote_addr;
proxy_set_header $WSRH $remote_addr;
proxy_set_header $WSSN $host;
proxy_set_header $WSIS True;
proxy_cookie_path / "/; SameSite=none; Secure";
}
}
任何想法都非常感谢!
提前致谢 ;-)
/约翰
编辑:测试页面的链接已被删除,因为该页面现在也已被删除:-)