HTTPS配置:
由于
HTTPS
具有良好的安全性,在开发中得到了越来越广泛
的应
像微信公众号
、小
程序
等的开发都要
使用
HTTPS
来完成。对于个人开发者而言
一个
HTTPS
证书的价
格还是有点贵,
国内有
些云服务器厂商提供免费的
TTPS
证书,
个账号可以申请数个
。不
过在
jdk
中提供了
Java
证书管理
工具
keytool
\j
dk
bin
录下
,通过这个
工具可
以自己
生成一个数字证书,
步骤如下:
打开cmd写命令:
命令:keytool -genkey -alias tomcathttps -keyalg RSA -keysize 2048 -keystore sang.p12 -validity 365
命令解释
•
-genkey
表示要创
一个新的
密钥。
•
alias
表示
keystore
的别名。
•
keya
lg
表示使用的加密算法是
RSA
种非对称加密算法
•
-k
eysize
表示密钥的长度
•
-k
eystore
表示生成的密钥存放位直
•
va
lidity
表示密钥的有效时间,单位为夭
找到它,拖到创建项目的根目录下:
注意:要搭建springboot项目在上一个博客中!
添加配置:
测试的用不到,可以把测试的类删掉 (不删也没事):
运行这个文件:
到网页上查看:https://localhost/firstController
接下来是一个http跳转到https的重定向例子:(这是因为 Spring Boot 不支持同时在配置中启动 HTTP HTTPS)
代码:
package cn.com.buba.config; import org.apache.catalina.Context; import org.apache.catalina.connector.Connector; import org.apache.tomcat.util.descriptor.web.SecurityCollection; import org.apache.tomcat.util.descriptor.web.SecurityConstraint; import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class TomcatConfig { @Bean TomcatServletWebServerFactory tomcatServletWebServerFactory(){ TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory(){ @Override protected void postProcessContext(Context context){ SecurityConstraint constraint = new SecurityConstraint(); constraint.setUserConstraint("CONFIDENTIAL"); SecurityCollection collection = new SecurityCollection(); collection.addPattern("/*"); constraint.addCollection(collection); context.addConstraint(constraint); } }; factory.addAdditionalTomcatConnectors(createTomcatConnector()); return factory; } private Connector createTomcatConnector(){ Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol"); connector.setScheme("http"); connector.setPort(8080);//先http的端口号 connector.setSecure(false); connector.setRedirectPort(443);//重定向https的端口号 return connector; } }
运行网页上查看:
结束!