解决nginx反向代理Mixed Content和Blockable问题

bash;gutter:false; nginx配置https反向代理,按F12发现js等文件出现Mixed Content,Optionally-blockable 和 Blockable</p> <p>HTTPS 网页中加载的 HTTP 资源被称之为 Mixed Content(混合内容),不同浏览器对 Mixed Content 有不一样的处理规则。</p> <p>现代浏览器(Chrome、Firefox、Safari、Microsoft Edge),基本上都遵守了 W3C 的 Mixed Content 规范,将 Mixed Content 分为 Optionally-blockable 和 Blockable 两类:</p> <p>Optionally-blockable 类 Mixed Content 包含那些危险较小,即使被中间人篡改也无大碍的资源。现代浏览器默认会加载这类资源,同时会在控制台打印警告信息。这类资源包括:</p> <p>通过 标签加载的图片(包括 SVG 图片); 通过 / 和 标签加载的视频或音频; 预读的(Prefetched)资源; 除此之外所有的 Mixed Content 都是 Blockable,浏览器必须禁止加载这类资源。所以现代浏览器中,对于 HTTPS 页面中的 JavaScript、CSS 等 HTTP 资源,一律不加载,直接在控制台打印错误信息</p> <pre><code> ;gutter:false;
解决:
而通过 upgrade-insecure-requests 这个 CSP 指令,可以让浏览器帮忙做这个转换。启用这个策略后,有两个变化:

页面所有 HTTP 资源,会被替换为 HTTPS 地址再发起请求;
页面所有站内链接,点击后会被替换为 HTTPS 地址再跳转;
(另外一个https相关的SCP指令选项是:block-all-mixed-content。启用这个选项之后,所有的非https资源都被禁止加载)

实际配置

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

关键配置:
add_header Content-Security-Policy upgrade-insecure-requests;

bash;gutter:true; server { listen 80; server_name www.abc.com; return 301 https://www.abc.com$request_uri;</p> <p>location / { rewrite ^/(.*)$ /cba/$1 last; }</p> <p>location ~<em> ^/cba/.</em>$ { proxy_pass http://172.18.123.21:88; } }</p> <p>server { listen 80; server_name abc.com; return 301 https://www.hotriz.com$request_uri; } server { listen 443; server_name abc.com; return 301 https://www.abc.com$request_uri; ssl_certificate /etc/nginx/ssl/www.abc.com.crt; ssl_certificate_key /etc/nginx/ssl/www.abc.com.key; }</p> <p>server { listen 443 default_server ssl; server_name www.abc.com; ssl_certificate /etc/nginx/ssl/www.abc.com.crt; ssl_certificate_key /etc/nginx/ssl/www.abc.com.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on;</p> <pre><code>location / { rewrite ^/(.*)$ /cba/$1 last; </code></pre> <p>}</p> <pre><code>location ~* ^/cba/.*$ { #域名:cba,配置后可以直接www.abc.com访问 proxy_pass http://172.18.123.21:88; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; proxy_set_header Upgrade-Insecure-Requests 1; proxy_set_header X-Forwarded-Proto https; add_header Content-Security-Policy upgrade-insecure-requests; </code></pre> <p>}</p> <p>}

Original: https://www.cnblogs.com/The-day-of-the-wind/p/15011352.html
Author: MlxgzZ
Title: 解决nginx反向代理Mixed Content和Blockable问题

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/582079/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Pytorch的类(nn.Module的子类)中的forward函数

    使用 直接通过类的实例对象就可以向类中的forward函数进行参数的传递(当然也可以通过调用forward函数进行传参) import torch.nn as nn class M…

    Linux 2023年6月7日
    0119
  • shell脚本

    一、shell脚本基本介绍 格式要求 脚本要以 #!/bin/bash 开头,debain需要改成#!/bin/dash 脚本需要有可执行权限 shell常用执行方式 输入脚本的绝…

    Linux 2023年6月6日
    091
  • Nginx进阶篇—web模块及proxy代理

    server { #&#x5728;server{&#x4E0B;&#x9762;&#x8F93;&#x5165; sub_filter n…

    Linux 2023年6月6日
    081
  • @EnableFeignClients注解源码解析

    转载请注明出处: @EnableFeignClients 注解定义的源码 这个注解通过@Import注解导入一个配置类FeignClientsRegistrar.class ;Fe…

    Linux 2023年6月14日
    099
  • sed与awk命令

    1.1 sed命令语法 在看单个命令以前,需要回顾一下关于所有sed命令的两点语法。在上一个章中,我们介绍了其大部分内容。行地址对于任何命令都是可选的。它可以使一个模式,被描述为由…

    Linux 2023年6月7日
    0109
  • 线段树扫描线(一) 矩形面积 以hdu 1542为例

    还是老规矩,传送门 hdu 1542 不做过多解释了,就是给出n个矩形,求出这些矩形所覆盖的面积和。由于n很小,因而这道题不是必须用线段树 先想想怎么办,先来一个例图(稍微有点复杂…

    Linux 2023年6月6日
    0109
  • Linux—磁盘管理

    Linux 磁盘管理 磁盘是一种计算机的外部存储器设备,由一个或多个覆盖有磁性材料的铝制或玻璃制的碟片组成,用来存储用户的信息,这种信息可以反复地被读取和改写;绝大多数磁盘被永久封…

    Linux 2023年6月7日
    0109
  • Failed to configure a DataSource ‘url’ attribute问题解决

    才写了一行代码又报错了.. *************************** APPLICATION FAILED TO START ********************…

    Linux 2023年6月13日
    083
  • 【原创】Linux虚拟化KVM-Qemu分析(七)之timer虚拟化

    背景 Read the fucking source code! –By 鲁迅 A picture is worth a thousand words. –…

    Linux 2023年6月8日
    0108
  • zabbix

    1. zabbix介绍 2. zabbix特点 3. zabbix配置文件 4. 部署zabbix zabbix介绍 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监…

    Linux 2023年6月7日
    0161
  • MIT6.824 Lab2调试过程

    2021-12-12 21:50 测试了5次,通过了并发用例。运行并发的用例的时候,会报第6个entry没有被三个节点中的任意一个apply。 看了看日志,发现第6个entry一直…

    Linux 2023年6月7日
    0101
  • LeetCode-26. 删除有序数组中的重复项

    题目来源 题目详情 由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k 个元素,那么 nums 的前 k 个元素应…

    Linux 2023年6月7日
    095
  • mac 如何仅安装redis-cli客户端

    brew tap ringohub/redis-cli brew update && brew doctor brew install redis-cli 【注】需…

    Linux 2023年5月28日
    0118
  • docker 安装redis

    1: 搜索镜像, docker search redis2:&#xA0;<strong>docker pull redis:6.0.6</strong&g…

    Linux 2023年5月28日
    094
  • [python][flask] Jinja 模板入门

    1、快速体验 2、Flask 最小 DEMO 3、模板继承 4、Super Blocks 5、Macros 6、自定义过滤器 7、结论 参考链接 Flask 和 Django 附带…

    Linux 2023年6月8日
    094
  • phpcms全文检索功能实现(集成sphinx)

    sphinx配置 sphinx是俄罗斯人开发的一个搜索引擎,基于c++编写,具有强大的检索能力,本身支持中文单个字符的检索,中文分词需要额外的插件Coreseek,但该插件已很久未…

    Linux 2023年6月13日
    0123
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球