http与https
1.JDK自带数字证书生成工具keytool
生成数字证书命令如下:
keytool -genkey -alias tomcathttps -keyalg RSA -keysize 2048 -keystore tang.sks -validity 365
* -genkey 表示要创建一个新的秘钥
* -alias 表示keystore别名
* -keyalg 表示使用的加密算法是RSA,一种非对称加密算法
* -keysize表示秘钥长度
* -validity 表示秘钥有效时间(天)
然后在application.properties中进行配置
server.ssl.key-store=tang.sks server.ssl.key-alias=tomcathttps server.ssl.key-store-password=123456
文件名称、别名(alias)、密码要与设置时一致,文件路径默认项目根目录。
2.tomcat http重定向https
代码如下所示:
@Configuration public class TomcatConfig { @Value("${server.port}") private int port; @Value("${server.redirectport}") private int redirectport; @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; } public Connector createTomcatConnector(){ Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol"); connector.setScheme("http"); connector.setPort(redirectport); connector.setSecure(false); connector.setRedirectPort(port); LogUtil.debug("redirectport="+redirectport); LogUtil.debug("port="+port); return connector; } }
当用http请求访问redirectport端口时,会重定向到port端口。

浙公网安备 33010602011771号