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 ...
随机推荐
- Day03:数组 、 继承的意义(上)
继承 面向对象编程三(四)大特征 (抽象),封装,继承,多态什么是继承? 继承是面向对象编程中一种代码复用的方式为什么需要继承? 减少代码冗余,提高程序的可维护性和可扩展性怎样使用继承? 语法: cl ...
- P1596 【[USACO10OCT]湖计数Lake Counting】
可爱的题面君~~ 个人感觉这题还是很简单的,就是一个完全不加工的找联通块个数 个人解题思路是先读入,然后循环一遍,遇到水就dfs,并把这个w所在的联通块“删除”,并在答案上加一 最后输出答案 具体注释 ...
- Mac 如何将apache的这个默认目录更改到用户目录下
如何将apache的这个默认目录更改到用户目录下. 做如下更改即可: 1.在自己的用户目录下新建一个Sites文件夹,我的用户目录为gaocuili 2.进到cd /etc/apache2/users ...
- python 并发编程 协程 greenlet模块
一 greenlet模块 不敢是yield,还是greenlet都没有实现检测io,实现遇到io切换效果 如果我们在单个线程内有20个任务,要想实现在多个任务之间切换,使用yield生成器的方式过于麻 ...
- N76E003双串口无法进UART1中断问题解决办法
最近在做有关N76E003的项目,使用到双串口.串口的配置没有特殊要求,最基本的配置 void Uart0_Init(void) { //—————————串口0引脚初始化———————— set_P ...
- WorkStation Linux 客户端 虚拟机的使用过程
1. 安装Workstation 版本选择 12.5 以上的版本 2. 安装完成之后 选择 打开虚拟机->选择 ovf文件 选择 ovf 文件 选择读入即可 3. 设置虚拟机的选项: 3.1 ...
- MySQL -3- 基础应用
1.数值类型 TINYINT --极小整数SMALLINT --较小整数MEDIUMINT --中型整数INT --常规整数BIGINT --较大整数FLOAT --小型单精度DOUBLE --常规双 ...
- php文件上传php.ini配置参数
php文件上传服务器端配置参数 file_uploads = On,支持HTTP上传uoload_tmp_dir = ,临时文件保存目录upload_max_filesize = 2M,允许上传文件的 ...
- Exceptionless
参考 Exceptionless - .Net Core开源日志框架
- crm客户资源显示控制
为便于员工之间的良性竞争,避免恶意挖客户,对于不同的登录用户,在客户列表中只显示当用用户自己所拥有的客户列表. ---具体的,通过在列表显示界面的列表查询语句中增加根据用户id查询其对应的客户资源的条 ...