1、修改application.yml
http:
port: 8289
server:
port: 8443
tomcat:
max-http-header-size: 8192
ssl:
key-store: classpath:tomcat.keystore
key-password: 123456
key-store-type: JKS
key-alias: tomcat
2、添加HttpsConfig文件
import org.apache.catalina.Context;
import org.apache.catalina.connector.Connector;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @author
* @date 2019-11-27 17:39
* @Description:
*/
@Configuration
public class HttpsConfig {
@Value("${http.port}")
private int httpPort;
@Value("${server.port}")
private int serverPort;
@Bean
public TomcatServletWebServerFactory servletContainer() {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory () {
@Override
protected void postProcessContext(Context context) {
// 如果要强制同时使用https和http,请松开以下注释
/* SecurityConstraint securityConstraint = new SecurityConstraint();
securityConstraint.setUserConstraint("CONFIDENTIAL");
SecurityCollection collection = new SecurityCollection();
collection.addPattern("/*");
securityConstraint.addCollection(collection);
context.addConstraint(securityConstraint);*/
}
};
tomcat.addAdditionalTomcatConnectors(httpConnector());
return tomcat;
}
@Bean
public Connector httpConnector() {
// 默认协议为org.apache.coyote.http11.Http11NioProtocol
//Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
Connector connector = new Connector(TomcatServletWebServerFactory.DEFAULT_PROTOCOL);
connector.setScheme("http");
connector.setPort(httpPort);
connector.setSecure(false);
connector.setRedirectPort(serverPort);
return connector;
}
}