介绍
怎么在springboot中通过配置ssl实现HTTPS ?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
springboot是什么
springboot一种全新的编程规范,其设计目的是用来简化新弹簧应用的初始搭建以及开发过程,springboot也是一个服务于框架的框架,服务范围是简化配置文件。
在配置TLS/ssl之前我们需要拿到相应签名的证书,测试实例可以使用Java下面的Keytool来生成证书:
打开控制台输入:
Keytool -genkey别名tomcat -storetype PKCS12 -keyalg RSA -keysize 2048,keystore keystore。p12有效性3650
这里的别名是,密钥存储库。p12,密码什么的直接设置就好,然后回车
然后根据路径找到生成好的证书,把证书复制到项目里,我是放到了这里
放好证书后,建立一个索引。html放到资源/模板文件夹下,一会用于测试。
再配置属性
server.port=8888 server.tomcat.uri-encoding=utf - 8 server.servlet.context-path=/demo server.ssl.key-store=keystore.p12 server.ssl.key-store-password=123456 server.ssl.key-store-type=PKCS12 server.ssl.key-alias=tomcat spring.thymeleaf。前缀=类路径:/模板/
配置好属性再加入下面的代码
@ configuration public class  HttpsConfig { , ,/* * ,,* spring boot 1.0 ,,*/,,/* @ bean public 才能;EmbeddedServletContainerFactory  servletContainer (), { ,,,TomcatEmbeddedServletContainerFactory tomcat =, new TomcatEmbeddedServletContainerFactory (), { ,,,,@Override ,,,,,protected void postProcessContext (Context 上下文),{ ,,,,,,,SecurityConstraint constraint =, new SecurityConstraint (); ,,,,,,,constraint.setUserConstraint (“CONFIDENTIAL"); ,,,,,,,SecurityCollection collection =, new SecurityCollection (); ,,,,,,,collection.addPattern (“/*”); ,,,,,,,constraint.addCollection(收集); ,,,,,,,context.addConstraint(约束); ,,,,,} ,,,}; ,,,tomcat.addAdditionalTomcatConnectors (httpConnector ()); ,,,return tomcat; ,}*/, ,/* * ,,* spring boot 2.0 ,,* @return ,,*/,@ bean public 才能;TomcatServletWebServerFactory  servletContainer (), { ,,,TomcatServletWebServerFactory tomcat =, new TomcatServletWebServerFactory (), { ,,,,@Override ,,,,,protected void postProcessContext (Context 上下文),{ ,,,,,,,SecurityConstraint constraint =, new SecurityConstraint (); ,,,,,,,constraint.setUserConstraint (“CONFIDENTIAL"); ,,,,,,,SecurityCollection collection =, new SecurityCollection (); ,,,,,,,collection.addPattern (“/*”); ,,,,,,,constraint.addCollection(收集); ,,,,,,,context.addConstraint(约束); ,,,,,} ,,,}; ,,,tomcat.addAdditionalTomcatConnectors (httpConnector ()); ,,,return tomcat; ,,} , ,@ bean public 才能;Connector  httpConnector (), { ,,,Connector Connector =, new 连接器(“org.apache.coyote.http11.Http11NioProtocol"); ,,,connector.setScheme (“http"); ,,,//连接器监听的http的端口号 ,,,connector.setPort (8080); ,,,connector.setSecure(假); ,,,//监听到http的端口号后转向到的https的端口号 ,,,connector.setRedirectPort (8888); ,,,return 连接器; ,,} , }
@ controller @RequestMapping public class  ViewControlller { , @GetMapping才能(“index") public 才能;String 指数(){ ,,,return “index"; ,,} null null null null null null null null null怎么在springboot中通过配置ssl实现HTTPS