详解在Spring Boot中使用Https
程序员文章站
2024-02-16 13:37:46
本文介绍如何在spring boot中,使用https提供服务,并将http请求自动重定向到https。
https证书
巧妇难为无米之炊,开始的开始,要先取得http...
本文介绍如何在spring boot中,使用https提供服务,并将http请求自动重定向到https。
https证书
巧妇难为无米之炊,开始的开始,要先取得https证书。你可以向证书机构申请证书,也可以自己制作根证书。
创建web配置类
在代码中创建一个使用了configuration注解的类,就像下面这段代码一样:
@configuration public class webconfig { //bean 定义... }
配置https
在配置类中添加embeddedservletcontainercustomizer bean,并在其中配置https证书和端口号。
@bean public embeddedservletcontainercustomizer containercustomizer() { return new embeddedservletcontainercustomizer() { @override public void customize(configurableembeddedservletcontainer container) { ssl ssl = new ssl(); //server.jks中包含服务器私钥和证书 ssl.setkeystore("server.jks"); ssl.setkeystorepassword("123456"); container.setssl(ssl); container.setport(8443); } }; }
配置http使其自动重定向到https
embedded默认只有一个connector,要在提供https服务的同时支持http,需要添加一个connector。在配置类中添加如下配置:
@bean public embeddedservletcontainerfactory servletcontainerfactory() { tomcatembeddedservletcontainerfactory factory = new tomcatembeddedservletcontainerfactory() { @override protected void postprocesscontext(context context) { //securityconstraint必须存在,可以通过其为不同的url设置不同的重定向策略。 securityconstraint securityconstraint = new securityconstraint(); securityconstraint.setuserconstraint("confidential"); securitycollection collection = new securitycollection(); collection.addpattern("/*"); securityconstraint.addcollection(collection); context.addconstraint(securityconstraint); } }; factory.addadditionaltomcatconnectors(createhttpconnector()); return factory; } private connector createhttpconnector() { connector connector = new connector("org.apache.coyote.http11.http11nioprotocol"); connector.setscheme("http"); connector.setsecure(false); connector.setport(8080); connector.setredirectport(8443); return connector; }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
推荐阅读
-
详解Spring boot使用Redis集群替换mybatis二级缓存
-
详解在Spring Boot中使用Https
-
Dubbo在Spring和Spring Boot中的使用详解
-
详解Spring boot上配置与使用mybatis plus
-
Spring Boot如何使用JDBC获取相关的数据详解
-
详解在Spring中如何使用AspectJ来实现AOP
-
Spring Boot如何使用HikariCP连接池详解
-
详解Spring Boot中整合Sharding-JDBC读写分离示例
-
详解在Spring-Boot中实现通用Auth认证的几种方式
-
详解使用Spring Boot开发Restful程序