SpringBoot 1.X版本设置Https访问以及跨域https访问的问题
最近在做的一个项目中出现了Https域向非Https域发送ajax请求无法通过的问题
Mixed Content: The page at was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://127.0.0.1/test'. This request has been blocked; the content must be served over HTTPS.
而我的项目又正好是springboot项目,所以就去网上查看了一下如何解决这个问题。得到的结果是被访问的这个网址也必须是https的,所以需要我们获得被访问的https证书,由于我的测试地址是本地服务,所以我采用的是本地keytools自己生成证书,如果你的项目是公网的,那么你可能需要去证书颁发机构获取证书。
那么接下老就正式开始配置了。
HTTPS在项目中的使用
首先我们要先获取到自己生成的证书文件,可以是.jks或者.keystore或者p12文件,那么我们将文件放到哪里呢?我们将文件放到项目的根目录下就行了
接着就是配置了
HTTPS的配置
SpringBoot中可以在application.properties文件中进行配置,也可以在代码中进行配置,这里我们选择在代码中进行配置,节省一些不必要的配置
首先我们在启动类中实现EmbeddedServletContainerCustomizer接口,这个接口允许我们对springboot中内置的tomcat进行自定义的配置,当然这个接口在SpringBoot2.0中有了变化,有兴趣的朋友可以关注一下。
实现了EmbeddedServletContainerCustomizer接口之后,需要去实现一个customize方法,在该方法中可以进行一些配置
以下是我的配置
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
Ssl ssl = new Ssl();
//Server.keystore中包含服务器私钥和证书
ssl.setKeyStore("server.keystore");
ssl.setKeyStorePassword("zhuofansoft");
container.setPort(8432);
container.setSsl(ssl);
container.setContextPath("/keybord");
}
自此关于Https的配置就告一段落了。
如果你要打包成jar包的话
当你打包成jar包然后使用java -jar启动之后,可能会提示缺少server.keystore文件,那么这个时候你需要将刚刚放到项目根目录下的server.keystore文件放一份到与jar包同一目录下。这样就可以正常启动了
如果本地https仍然无法跨域访问请看这里
本地https仍然无法正常访问的原因,可能是我们自己的证书不受信任的原因,那么我们需要在自己的本地浏览器中添加对本地127.0.0.1的httpsy域名证书的信任,具体如何添加请自行搜索。
SpringBoot 1.X版本设置Https访问以及跨域https访问的问题的更多相关文章
- .Net 通过设置Access-Control-Allow-Origin来实现跨域访问
目录 # 前言 # 为每个API接口单独添加响应头 1.针对 ASP.NET MVC 项目的Controllers 2.针对 ASP.NET Web API项目的Controllers 3.针对ASP ...
- vue访问外部接口设置代理,解决跨域(vue-cli3.0)
vue-cli3.0搭建的项目,平时访问内部接口配置了拦截器,今天需要调用天气预报的外部接口,发现跨域问题,通过配置代理解决. 1.在vue.config.js中配置代理 module.exports ...
- IIS Manager 配置文件修该,允许跨域CORS访问
IIS Manager 配置文件修该,允许跨域CORS访问 IIS Manager 的api访问会出现跨域问题,需要 IIS Manager的配置文件中修改. 配置文件的路径:C:\Program F ...
- Tornado—添加请求头允许跨域请求访问
跨域请求访问 如果是前后端分离,那就肯定会遇到cros跨域请求难题,可以设置一个BaseHandler,然后继承即可. class BaseHandler(tornado.web.RequestHan ...
- nginx 跨域请求访问
1.nginx跨域请求访问 location ~ .*\.(htm|html)$ { add_header Access-Control-Allow-Origin(请求域名) *(所有域名) http ...
- CORSFilter 跨域资源访问
CORS 定义 Cross-Origin Resource Sharing(CORS)跨来源资源共享是一份浏览器技术的规范,提供了 Web 服务从不同域传来沙盒脚本的方法,以避开浏览器的同源策略,是 ...
- Nginx解决前端访问资源跨域问题
被前端跨域问题折磨快2天后,终于用ngnx的方式解决了,所以在此总结下. 该篇只探讨如何用Ngnx解决跨域问题,对于原理不作讨论. 1.首先介绍Windows环境下Nignx的相关命令操作 nginx ...
- iframe与主框架跨域相互访问方法【转】
转自:http://blog.csdn.net/fdipzone/article/details/17619673 1.同域相互访问 假设A.html 与 b.html domain都是localho ...
- iframe与主框架跨域相互访问方法
iframe 与主框架相互访问方法 http://blog.csdn.net/fdipzone/article/details/17619673/ 1.同域相互访问 假设A.html 与 b.htm ...
随机推荐
- CTF—攻防练习之FTP服务后门
主机:192.168.32.152 靶机:192.168.32.156 首先查看靶机开放的端口: nmap 192.168.32.156 nmap -T4 -A -v 192.168.32.156 ...
- cocos2dx[3.2](9) 新回调函数std::bind
自从3.0引用了C++11标准后,回调函数采用的新的函数适配器:std::function.std::bind. 而曾经的回调函数menu_selector.callfunc_selector.ccc ...
- 常用ARM指令
常用ARM指令1:数据处理指令 mov mvn MOV(MOVE)指令可完成从另一个寄存器.被移位的寄存器或将一个立即数加载到目的寄存器 MOV R0,R1;R1的值传到R0 MOV R3,#3 ...
- form 校验
import refrom django.forms import Formfrom django.forms import widgetsfrom django.forms import field ...
- 【基本优化实践】【1.4】tempdb优化
[1]tempdb介绍 tempdb全局存储内部对象,用户对象,临时表,临时对象,以及SQL Server操作创建的存储过程.每个数据库实例只有一个tempdb,所以可能存在性能以及磁盘空间瓶颈. 各 ...
- MyBatis Mapper XML 详解
MyBatis Mapper XML 详解 MyBatis 真正的力量是在映射语句中.这里是奇迹发生的地方.对于所有的力量,SQL 映射的 XML 文件是相当的简单.当然如果你将它们和对等功能的 JD ...
- numpy数组转置与轴变换
numpy数组转置与轴变换 矩阵的转置 >>> import numpy as np >>> arr=np.arange(15).reshape((3,5)) &g ...
- priority_queue的常见用法
priority_queue的常见用法 priority_queue是什么? 优先队列 底层实现用堆来实现 每次队首的优先级最大 priority_queue的定义 引入头文件 # include & ...
- noip2015day2-运输计划
题目描述 公元$ 2044 $年,人类进入了宇宙纪元. \(L\) 国有 \(n\) 个星球,还有 \(n-1\) 条双向航道,每条航道建立在两个星球之间,这 \(n-1\) 条航道连通了 \(L\) ...
- python:count 函数
API 一.string 中 某字符 的次数 str.count(sub, start= 0,end=len(string)) Args Annotations sub 搜索的子字符串 start 字 ...