1.生成自定义证书
keytool -genkeypair -alias yourname -keyalg RSA -keystore yourname.key
按步骤来 配置好密码
2 把 yourname.key 文件移动到springboot resources 文件夹下
3 在application.properties 添加如下配置
//https 配置
server.port: 443
server.ssl.key-store:classpath:yourname.key
server.ssl.key-store-password: yourpassword
server.ssl.keyStoreType: JKS
server.ssl.keyAlias: yourname
4 在启动类 添加如下代码
@SpringBootApplication
public class ApiApplication {
public static void main(String[] args) {
SpringApplication.run(ApiApplication.class, args);
}
@Bean
public EmbeddedServletContainerFactory servletContainer(){
TomcatEmbeddedServletContainerFactory tomcat=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);
}
};
tomcat.addAdditionalTomcatConnectors(httpConnector());
return tomcat;
}
/**
* 80 端口重定向到 443 端口
* @return
*/
@Bean
public Connector httpConnector(){
Connector connector=new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("http");
connector.setPort(80);
connector.setSecure(false);
connector.setRedirectPort(443);
return connector;
}
}
OK!