首页 > 其他分享 >解决 Https 站点请求 Http 接口服务后报 the content must be served over HTTPS 错误的问题

解决 Https 站点请求 Http 接口服务后报 the content must be served over HTTPS 错误的问题

时间:2023-07-18 10:56:45浏览次数:48  
标签:站点 Http 请求 Https content ssl HTTPS http com

问题分析

之前将自己所有的 Http 站点全部更新为 Https 站点,但是在请求后台接口服务的时候还是 Http 请求,导致部署之后,直接在控制台报 This request has been blocked; the content must be served over HTTPS; 的错误

解决思路

因为我不想耗费精力,将所有的后台接口服务也更新为支持 Https 请求,所以访问了一些资料之后,发现了一个非常巧妙的思路,省时省力解决这个问题。

那就是直接使用Nginx将后台接口服务的 http 请求地址代理到前端 Https 站点的一个目录下,经过Nginx这一层将后台接口服务的 Http 请求包装成 Https 请求

举个栗子

  1. 比如你之前的后台接口服务请求地址是:http://bbb.com(甚至你的请求地址是ip+端口都没关系)
  2. 然后你的前端站点部署的域名是:https://aaa.com
  3. 你可以通过修改Nginx配置,将后台接口服务的地址转发到前端域名地址的一个目录下,比如:https://aaa.com/bbb-api
  4. 这样就可以让Nginx帮你完美解决 http 请求无法访问 https 站点的问题~~~牛逼o( ̄▽ ̄)d

Nginx配置示例

这里没有放出全部的配置示例,因为只需要修改前端域名中443端口的监听配置即可

server
{
	listen 443 ssl;
	server_name aaa.com;
	
	ssl_certificate               /etc/ssl/aaa.com.crt;
	ssl_certificate_key           /etc/ssl/aaa.com.key;
	ssl_protocols                 TLSv1.1 TLSv1.2 TLSv1.3;
	ssl_ciphers                   ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
	ssl_prefer_server_ciphers     on;
	ssl_session_cache             shared:SSL:1m;
	ssl_session_timeout           10m;
	
	# 这里是前端https站点的配置
	location / {
		proxy_pass http://ip:端口;
	}
	
	# 这里是转发到另一个后台http请求的配置,也可以直接用ip+端口
	location /bbb-api/ {
		proxy_pass http://bbb.com/;
	}
}

我是 fx67ll.com,如果您发现本文有什么错误,欢迎在评论区讨论指正,感谢您的阅读!
如果您喜欢这篇文章,欢迎访问我的 本文github仓库地址,为我点一颗Star,Thanks~

标签:站点,Http,请求,Https,content,ssl,HTTPS,http,com
From: https://www.cnblogs.com/fx67ll/p/nginx-https-api.html

相关文章

  • Netty 作为 http client 请求https 的 get与post(二)双向ssl
    接Netty作为httpclient请求https的get与post,packagecom.example.demo;importio.netty.bootstrap.Bootstrap;importio.netty.buffer.ByteBuf;importio.netty.buffer.Unpooled;importio.netty.channel.*;importio.netty.channel.nio.NioEventLoopGroup;importio.net......
  • docker buildx http: server gave HTTP response to HTTPS client
    参考:https://github.com/docker/buildx/issues/163https://github.com/thegeeklab/drone-docker-buildx/issues/153https://github.com/moby/buildkit/blob/master/docs/buildkitd.toml.md 准备用buildx构建多平台镜像,基于Dockerfilefrom私服中的jdk在执行以下命令时,......
  • Java爬虫--HttpClient-Post请求
    //下面是一个demo:packagetest;importorg.apache.http.HttpEntity;importorg.apache.http.client.methods.CloseableHttpResponse;importorg.apache.http.impl.client.CloseableHttpClient;importorg.apache.http.impl.client.HttpClients;importorg.apache.http.util......
  • http、socket以及websocket的区别(websocket使用举例)
    一、http、socket、websocket介绍1、HTTP(HypertextTransferProtocol):HTTP是一种应用层协议,用于在客户端和服务器之间传输超文本数据。它是基于请求-响应模型的,通过发送HTTP请求从服务器获取数据,并通过HTTP响应返回数据给客户端。HTTP是无状态的,每个请求和响应都是独立的,不保留状......
  • Charles抓取https请求及常见问题解决
    一、背景APP测试的时候,通常都需要通过抓包工具抓取各类请求,查看接口的入参、返回值等,用于分析定位问题。常用的抓包工具有fiddler、charles等,抓取http的请求比较简单,https的请求稍显复杂。由于更喜欢charles的页面风格,本篇文章主要介绍以下两点:1、Charles如何抓取电脑端和手机端的......
  • https
    https证书和私钥替换为自己的;SSL动态库在DELPHI安装目录里面可全文搜索到。测试 ......
  • Scrapy框架爬取HTTP/2网站
    scrapy本身是自带支持HTTP2的爬取:https://docs.scrapy.org/en/latest/topics/settings.html?highlight=H2DownloadHandler#download-handlers-base需要把这个包安装一下#本身scrapy就是基于Twisted的,http2是一个拓展包Twisted[http2]>=17.9.0然后在settings.py中打开下载......
  • go中http设置忽略证书
    在Go中,可以通过设置http.Client的Transport属性来忽略证书验证。默认情况下,http.DefaultClient使用的是http.DefaultTransport,它对证书进行了验证。但是你可以创建一个自定义的Transport并将其用作客户端的Transport,以忽略证书验证。packagemainimport( "crypto/......
  • js:http-vue-loader从浏览器直接引入vue文件
    docgithub:https://github.com/FranckFreiburger/http-vue-loaderindex.html<!doctypehtml><htmllang="en"><head><scriptsrc="https://cdn.bootcdn.net/ajax/libs/vue/2.6.14/vue.min.js"></script><s......
  • iframe嵌套的https服务,权限开放设置
    1、场景:chatGPT开发语音功能,部署服务需要https协议,有个独立的门户需要将服务以iframe嵌入到系统中2、问题:chatGPT语音服务无法弹出授权开启麦克的提示3、原因:iframe默认是关闭了相关权限4、处理:参考说明<iframe>标签的sandbox属性是一个布尔属性,当存在时表......