SpringBoot配置Https与http请求
一 生成ssl证书,通过本地的keytools来进行生成,服务器环境有可能会出现问题
keytool.exe -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore D:/keystore.p12 -validity 3650
这个密钥密码要记住,我设置的是123456
二 SpringBoot中properties文件设置
spring.application.name=httpsdemo spring.mvc.static-path-pattern=/** spring.resources.static-locations=classpath:/static/ #这是https访问端口 server.port=8080 server.ssl.key-store:keystore.p12 server.ssl.key-store-password: 123456 server.ssl.keyStoreType: PKCS12 server.ssl.keyAlias: tomcat #这是http访问端口,实现http转https http.port=8081
三 将之前生成好的keystore.p12放在项目根路径下面
配置http访问,两者不能是同一端口,所以我写成了8081
在SpringBoot的主驱动类中添加一下操作
package cn.personloger;
import org.apache.catalina.connector.Connector;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
import org.springframework.context.annotation.Bean;
@SpringBootApplication
public class HttpsdemoApplication {
//驱动properties文件的http的访问端口
@Value("${http.port}")
private Integer port;
public static void main(String[] args) {
SpringApplication.run(HttpsdemoApplication.class, args);
}
//前面基本一致,只不过注入了一个http端口,主要改下面
@Bean
public ServletWebServerFactory servletContainer() {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
tomcat.addAdditionalTomcatConnectors(createStandardConnector()); // 添加http
return tomcat;
}
// 配置http
private Connector createStandardConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setPort(port);
return connector;
}
}
四 访问

京公网安备 11010502036488号