详解在Spring Boot中使用Https
程序员文章站
2023-12-20 15:17:28
本文介绍如何在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中使用Https
-
详解Spring Boot中使用Flyway来管理数据库版本
-
Spring Boot使用过滤器和拦截器分别实现REST接口简易安全认证示例代码详解
-
详解在Spring中如何使用AspectJ来实现AOP
-
详解使用Jenkins部署Spring Boot项目
-
详解spring boot使用@Retryable来进行重处理
-
Spring boot中@Conditional和spring boot的自动配置实例详解
-
详解spring-boot下如何满足多生产环境中个性化定制功能
-
详解使用spring boot admin监控spring cloud应用程序
-
详解如何在Spring Boot项目使用参数校验