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 ...
随机推荐
- java带图形界面的五子棋
Main: package BlackWhite; import java.awt.BorderLayout; import java.awt.Color; import java.awt.FlowL ...
- 红帽学习笔记[RHCSA] 第十课[计划任务Cron与At、逻辑卷管理]
计划任务[At & Cron Jobs] at # at 命令只能计划一次性任务但是比较方便. # 先输入时间 [root@localhost Desktop]# at 10:02 # 输入要 ...
- input type=file accept中文件格式限制
原文链接:https://blog.csdn.net/usuallyuser/article/details/83060341 accept="application/msexcel,app ...
- XSS绕过WAF的姿势
初始测试 1.使用无害的payload,类似<b>,<i>,<u> 观察响应,判断应用程序是否被HTML编码,是否标签被过滤,是否过滤<>等等: 2.如 ...
- 多次NameNode执行format后DataNode启动不了解决方案
1.问题 执行start-dfs.sh后在进程中查看jps,发现NameNode启动,但DataNode没有 2.原因 在失败的.log文件中看到datanode的clusterID 和 nameno ...
- oracle sid_name service_name
在工作中也遇到了这种情况,使用oracle这么长时间一直使用的都是SID的概念.也是给自己扩充了一下知识,所以后面在配置oracle数据库连接的时候需要确认拿到的是service还是sid再进行相应的 ...
- Java Calendar使用
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; impor ...
- 字符串的 Base64 加密和解密
base64加密: FORM encode_base64 USING p_business “字符串string CHANGING p_base64. DATA l_xstring TYPE xstr ...
- thinkphp+webuploader实现大文件分片上传
大文件分片上传,简单来说就是把大文件切分为小文件,然后再一个一个的上传,到最后由这些小文件再合并成原来的文件 webuploader下载地址及其文档:http://fex.baidu.com/webu ...
- 三、Vue CLI-单页面
一.单页面 代码如下: <template> <div class="header">{{title}}</div> </template ...