nginx配置https请求转发到http出现Mixed Contend问题

问题描述

nginx配置https请求转发到http后,部分网站访问出现空白页,感觉像是js、css没有正常加载。通过F12,发现很多js文件出现Mixed Content,状态是已屏蔽,协议都是http的。

HTTPS网页中加载HTTP资源被称之为Mixed Content(混合内容),为了安全,浏览器默认做了屏蔽,致使页面出现问题。

解决方法

而通过 upgrade-insecure-requests 这个 CSP 指令,可以让浏览器帮忙做这个转换。启用这个策略后,有两个变化:

  1. 页面所有 HTTP 资源,会被替换为 HTTPS 地址再发起请求;
  2. 页面所有站内链接,点击后会被替换为 HTTPS 地址再跳转;

(另外一个https相关的SCP指令选项是:block-all-mixed-content。启用这个选项之后,所有的非https资源都被禁止加载)参考:解决nginx反向代理Mixed Content和Blockable问题 - MlxgzZ - 博客园 (cnblogs.com)

实际配置

比如如果有使用nginx做代理,可以在转发请求的时候添加一个Content-Security-Policy的头,并将这个头的值设置为upgrade-insecure-requests,来将http请求转为https。在nginx的location块中添加 add_header Content-Security-Policy upgrade-insecure-requests;

复制代码
location / { 
     proxy_pass http://X.X.X.X;
     proxy_set_header X-Real-IP $remote_addr;
     add_header Content-Security-Policy upgrade-insecure-requests;
  }
相关推荐
91刘仁德34 分钟前
IP协议详解:从IP协议头到网段划分、路由与NAT
linux·服务器·网络·网络协议·tcp/ip
硅基手札1 小时前
【Linux内核专栏 14】网络协议栈
linux·运维·网络协议
工作10年+,存储芯片行业3 小时前
Linux NVMe 中断排查与性能优化:CPU 亲和性
linux·运维·服务器·windows·性能优化·ssd·pcie
快乐の番薯4 小时前
卷王问卷考试系统自动化功能测试
运维·功能测试·自动化
一号弯4 小时前
装完LINUX,请先新建日常用户
linux·运维·服务器
lpfasd1234 小时前
WinSW在Win7上失败真相-实测与修复
windows·nginx
Lsetea5 小时前
OpenSSL verify报unable to get issuer certificate:error 2与partial_chain排查
linux·https·ssl证书·openssl·证书链
许彰午5 小时前
03-Linux环境准备依赖包内核参数与用户组
linux·运维·服务器·数据库
阳光九叶草LXGZXJ5 小时前
达梦数据库-报错-16-MERGE INTO提示:无效的列名[XX]
linux·运维·数据库·sql·学习
网络小江6 小时前
上网第四十二课:第六周复盘——协议篇快问快答
网络协议