Spring Boot项目配置ssl证书实现https

项目中使用HTTP不安全,所以需要使用HTTPS,HTTPS的安全基础是SSL。项目中使用HTTPS的具体步骤如下。

  1. 申请SSL证书

    1. 腾讯云或者其他云申请SSL证书
    2. 域名  
  2. SSL文件放在resources,application.properties配置SSL相关配置项

    1. jks\p12放在resources
    2. application.properties配置      
1 server.port: 8092
2 server.ssl.key-store= classpath:server.jks
3 server.ssl.key-store-password=你的密码
4 server.ssl.keyStoreType = JKS
  1. HTTP转HTTPS

    1. 项目入口填写转向。通过这段配置,访问http://localhost:8080的时候系统会自动重定向到https://localhost:8092这个地址上。
 1 @Bean
 2     public EmbeddedServletContainerFactory servletContainer() {
 3         TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory() {
 4             @Override
 5             protected void postProcessContext(Context context) {
 6                 SecurityConstraint constraint = new SecurityConstraint();
 7                 constraint.setUserConstraint("CONFIDENTIAL");
 8                 SecurityCollection collection = new SecurityCollection();
 9                 collection.addPattern("/*");
10                 constraint.addCollection(collection);
11                 context.addConstraint(constraint);
12             }
13         };
14         tomcat.addAdditionalTomcatConnectors(httpConnector());
15         return tomcat;
16     }
17 
18     @Bean
19     public Connector httpConnector() {
20         Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
21         connector.setScheme("http");
22         //Connector监听的http的端口号
23         connector.setPort(8080);
24         connector.setSecure(false);
25         //监听到http的端口号后转向到的https的端口号
26         connector.setRedirectPort(8092);
27         return connector;
28     }

 

  

posted @ 2020-05-19 09:46  Ivy_Xu  阅读(1855)  评论(0编辑  收藏  举报