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; } }
四 访问