修复HTTPS升级后出现 Mixed Content: The page at 'https://xxx' was loaded over HTTPS, but requested an insecure frame 'http://xxx'. This request has been blocked; the content must be served over HTTPS. 的问题

简介: 修复HTTPS升级后出现 Mixed Content: The page at 'https://xxx' was loaded over HTTPS, but requested an insecure frame 'http://xxx'. This request has been blocked; the content must be served over HTTPS. 的问题

背景
image

由于需要使用摄像头拍照,需要将原来的http升级到https,通过一顿捣鼓,升级成功。
不过页面加载出现了问题,具体的提示是说:你的页面是在https环境,但是你访问了一个资源(我这里是iframe,也可能是stylesheet等其他资源),而这个资源是在http环境下的,浏览器不给你这样玩。
https只能访问https的资源,也因为此修改了接口的baseURL。
解决办法
在nginx 配置中加上 add_header Content-Security-Policy "upgrade-insecure-requests"; 这一条配置即可。

让 http 能够自动转发到 https

server {
listen 80;
server_name yourdomain.com;

location / {
    return 301 https://$host$request_uri;
}

}

server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate yourcrt.pem;
ssl_certificate_key yourkey.pem;
ssl_session_timeout 5m;

location / {
    port_in_redirect off;
    proxy_pass http://127.0.0.1:1234;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    # 加上这条即可 👇
    add_header Content-Security-Policy "upgrade-insecure-requests";
}

}
为什么HTTPS和HTTP不能混用?
混合内容问题:当一个安全的 HTTPS 页面试图加载非安全的 HTTP 内容时,这种情况被称为“混合内容”。浏览器通常会阻止这种行为,因为它降低了整个页面的安全性。
安全风险:HTTP 内容没有加密,易受中间人攻击。如果在 HTTPS 页面中加载 HTTP 内容,攻击者可能利用这个未加密的内容来攻击整个页面,比如通过注入恶意脚本。
[kod.kangmingjian.com)
[kod.ybs0510.com)
[kod.chinavision1.com)
[kod.pld8.com)
[kod.rwhds.com)
[kod.bzxtp.com)
隐私和完整性:HTTPS 旨在保护用户数据的隐私和完整性。混合内容使得 HTTPS 页面的这些保障部分失效,因为嵌入的 HTTP 内容不受同样的保护。
用户信任:用户可能信任一个安全的 HTTPS 页面,如果这个页面包含不安全的内容,这可能误导用户,使他们对整个页面的安全性有错误的理解。
如果实在要混用怎么办?
参考这篇文章:如何在 https 的 iframe 里访问 http 页面? | nginx应用实战-3
原理就是在服务器访问http拿到页面,然后包装成https再返回来。
其实最好就是原http页面也升级成https,上面的方法是针对原http不是自己写的没法改的情况下。

相关文章
|
Web App开发 JavaScript 前端开发
解决DevTools failed to load SourceMap Could not load content for .js.map HTTP error code 404 问题
解决DevTools failed to load SourceMap Could not load content for .js.map HTTP error code 404 问题
940 0
|
8月前
|
监控 搜索推荐 定位技术
HTTP状态码:如何修复 404 Not Found错误?
互联网上各种类型的网站非常多,无论用户还是网站运营者不可避免的会遇到404 Not Found错误,如果遇到404错误,我们应该如何解决呢?
162 1
|
应用服务中间件 Linux 网络安全
【WEB】当HTTPS资源引入HTTP导致报错blocked:mixed-content (混合加载/Mixed Content)如何解决
【WEB】当HTTPS资源引入HTTP导致报错blocked:mixed-content (混合加载/Mixed Content)如何解决
【WEB】当HTTPS资源引入HTTP导致报错blocked:mixed-content (混合加载/Mixed Content)如何解决
|
API 开发工具 git
解决 `remote: You must use a personal access token with 'api' scope for Git over HTTP.`
`git clone` 报错,解决 `remote: You must use a personal access token with 'api' scope for Git over HTTP.`
519 0
解决 `remote: You must use a personal access token with 'api' scope for Git over HTTP.`
Uncaught DOMException: Blocked a frame with origin "http://localhost:8000" from accessing a cross-origin frame.
Uncaught DOMException: Blocked a frame with origin "http://localhost:8000" from accessing a cross-origin frame.
1411 0
|
前端开发 JavaScript
【WEB前端】【报错解决】This request has been blocked; the content must be served over HTTPS.
【WEB前端】【报错解决】This request has been blocked; the content must be served over HTTPS.
1450 0
|
安全 Java Maven
from/to maven-default-http-blocker (http://0.0.0.0/): Blocked mirror for repositories报错解决方案
最近升级Maven到3.8.1后,mvn编译的时候总是提示拉不到依赖,报错: Could not validate integrity of download from http://0.0.0.0/… 关键字maven-default-http-blocker。
1253 0
|
JSON 前端开发 数据格式
|
Web App开发 数据格式
谈一谈Http Request 与 Http Response
原文:谈一谈Http Request 与 Http Response 写在前面的话:最近帮朋友弄弄微信商城,对于微信的基础开发,基本上就是各种post、get,有时是微信服务器向我们的服务器post、get数据,有时需要我们自己的服务器向微信服务器各种post、get,之间通过json或者xml传送数据。
1381 0
|
4月前
|
监控 安全 搜索推荐
设置 HTTPS 协议以确保数据传输的安全性
设置 HTTPS 协议以确保数据传输的安全性