准备工作
需要自签,或者权威机构颁发的证书一张
springboot配置Https访问
1#ssl 2#https访问的端口 3server.port=8085 4#证书,可以存放在resoucrs目录下 5server.ssl.key-store=classpath:tomcat_ssl/www.huimaida.com.jks 6#证书密码 7server.ssl.key-password=223311 8#证书加密方式 9server.ssl.key-store-type=JKS
以上,便完成可https的访问配置,例如:https://127.0.0.1:8085/
配置http跳转https
我们可以配置http访问某个端口,自动跳转至https端口。例如,配置80端口,当用户通过 http://127.0.0.1:80/ 访问时,会自动跳转至配置另外的一个端口。
配置如下:
1 @Bean 2 //配置http某个端口自动跳转https 3 public TomcatServletWebServerFactory servletContainer() { 4 5 TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() { 6 7 @Override 8 protected void postProcessContext(Context context) { 9 SecurityConstraint securityConstraint = new SecurityConstraint(); 10 securityConstraint.setUserConstraint("CONFIDENTIAL"); 11 SecurityCollection collection = new SecurityCollection(); 12 collection.addPattern("/*"); 13 securityConstraint.addCollection(collection); 14 context.addConstraint(securityConstraint); 15 } 16 }; 17 tomcat.addAdditionalTomcatConnectors(initiateHttpConnector()); 18 return tomcat; 19 } 20 21 private Connector initiateHttpConnector() { 22 Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol"); 23 connector.setScheme("http"); 24 //监听的http端口 25 connector.setPort(8005); 26 connector.setSecure(false); 27 //跳转的https端口 28 connector.setRedirectPort(8085); 29 return connector; 30 }