怎么在springboot中通过配置ssl实现HTTPS

  介绍

怎么在springboot中通过配置ssl实现HTTPS ?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

springboot是什么

springboot一种全新的编程规范,其设计目的是用来简化新弹簧应用的初始搭建以及开发过程,springboot也是一个服务于框架的框架,服务范围是简化配置文件。

在配置TLS/ssl之前我们需要拿到相应签名的证书,测试实例可以使用Java下面的Keytool来生成证书:

打开控制台输入:

Keytool -genkey别名tomcat -storetype PKCS12 -keyalg RSA -keysize 2048,keystore keystore。p12有效性3650

怎么在springboot中通过配置ssl实现HTTPS

这里的别名是,密钥存储库。p12,密码什么的直接设置就好,然后回车

然后根据路径找到生成好的证书,把证书复制到项目里,我是放到了这里

怎么在springboot中通过配置ssl实现HTTPS

放好证书后,建立一个索引。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