1、生成密钥文件,keytool 是java的一个命令
keytool -genkey -alias hpgary -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650
2、放到spring boot项目的 resource源码包下
3、修改配置文件 application.perproties 文件
server.ssl.key-store=classpath:keystore.p12 server.ssl.key-store-password=123456 server.ssl.keyStoreType=PKCS12 server.ssl.keyAlias=hpgary
4、定义 tomcat https bean
@Bean
public EmbeddedServletContainerFactory servletContainer(){
TomcatEmbeddedServletContainerFactory
containerFactory = new TomcatEmbeddedServletContainerFactory(){
@Override
protected void postProcessContext(Context context) {
SecurityConstraint securityConstraint = new SecurityConstraint();
securityConstraint.setUserConstraint("CONFIDENTIAL");
SecurityCollection collection = new SecurityCollection();
collection.addPattern("/*");
securityConstraint.addCollection(collection);
context.addConstraint(securityConstraint) ;
}
};
containerFactory.addAdditionalTomcatConnectors( initiateHttpConnector() );
return containerFactory ;
}
@Value("${server.port}")
Integer serverPort ;
private Connector initiateHttpConnector() {
//http 80 端口 跳转到 https 8443 端口
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme( "http" );
connector.setPort( 80 );
connector.setSecure( false );
connector.setRedirectPort( serverPort );
return connector;
}