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;
  }
相关推荐
三十..3 小时前
Ceph 三大存储接口深度实践与数据保护指南
运维·ceph
蝶豆花4 小时前
基于商城系统的功能,自动化,性能-测试报告
运维·自动化
袋鼠云数栈4 小时前
从前端到基础设施,ACOS 如何打通企业全链路可观测
运维·前端·人工智能·数据治理·数据智能
黎阳之光4 小时前
视频孪生智护供水生命线:黎阳之光赋能医疗与园区水务高质量升级
运维·物联网·算法·安全·数字孪生
志栋智能5 小时前
AI驱动无代码:降低巡检超自动化的门槛
大数据·运维·网络·人工智能·自动化
专业机床数据采集5 小时前
C# 精雕数控 数据采集 Demo|实时读取精雕机床坐标、主轴、负载、加工工时全量参数
网络·网络协议·tcp/ip·mes·精雕数控数据采集
AOwhisky5 小时前
Ceph系列第六期:Ceph 文件系统(CephFS)精讲
linux·运维·网络·笔记·ceph
Land03295 小时前
RPA网页自动化:元素定位失效的7种根因与XPath鲁棒性改造方案
运维·selenium·自动化·rpa
zh_yt6 小时前
auto-connect remote ssh server
运维·ssh
Lumbrologist6 小时前
【零基础部署】Docker 部署 AutoGen 多 Agent 对话框架保姆级教程
运维·docker·容器