springboot http转https
一、安全证书的生成
可以使用jdk自带的证书生成工具,jdk自带一个叫keytool的证书管理工具,可以用它来实现签名的证书。
1、进入jdk的目录
配置好基本的jdk环境,进入jdk的目录,输入cmd
2、生成一个证书
别名:alias = tomcat
密码:keypass = 123456
生成位置:keystore = D:/keys
keys文件夹需要自己先创建好
keytool -genkey -alias tomcat -keypass 123456 -keyalg RSA -keysize 1024 -validity 365 -keystore D:/keys/tomcat.keystore -storepass 123456
3、获取tomcat.keystore文件,放入项目根目录
配置SSL
1、修改配置文件
server:
port: 8443
tomcat:
uri-encoding: UTF-8
ssl:
key-store: tomcat.keystore
key-password: 123456
key-store-type: JKS
key-alias: tomcat
配置http→https转向
1、在启动类中配置
import org.apache.catalina.connector.Connector;
import org.mybatis.spring.annotation.MapperScan;
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;
/**
* @author cc
*/
@SpringBootApplication
@MapperScan("com.example.demo.dao")
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
// springboot2 写法
@Bean
public ServletWebServerFactory servletContainer() {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
tomcat.addAdditionalTomcatConnectors(createHTTPConnector());
return tomcat;
}
private Connector createHTTPConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
//同时启用http(8080)、https(8090)两个端口
connector.setScheme("http");
connector.setSecure(false);
connector.setPort(8081);
connector.setRedirectPort(8443);
return connector;
}
}