项目中使用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 }