項目中使用HTTP不安全,所以需要使用HTTPS,HTTPS的安全基礎是SSL。項目中使用HTTPS的具體步驟如下。
-
申請SSL證書
- 騰訊雲或者其他雲申請SSL證書
- 域名
-
SSL文件放在resources,application.properties配置SSL相關配置項
- jks\p12放在resources
- 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
-
HTTP轉HTTPS
- 項目入口填寫轉向。通過這段配置,訪問
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 }