因业务需求,需要将 htpp 请求转为 https 请求,这里需要 ssl 证书,证书的获取可以借助 jdk 自带的 keytool 工具生成。 原文地址: 一、生成 ssl 证书 进入 jdk 的 bin 目录,可以看到 keytool 工具 然后在该目录下打开 cmd ,输入命令: windows 平台: linux平台: 参数说明: -alias 你的证书别名 -keyalg 密钥算法 -keystore 证书库文件保存的位置和文件名 -keysize 密钥长度 -validity 证书有效期天数 生成的证书就在 bin 目录下 二、将生成的keystore.p12文件放到项目的 resources 目录下: 三、配置application.properties / application.yml 文件 如果 chrome 不可以访问 那么在配置里再加一条配置信息 这时就可以发送 https 请求了 此外因为Spring Boot不支持同时在配置中启动http和https。这个时候可以配置请求重定向,将http请求重定向为https请求。配置如下: 这里首先配置一个TomcatServletWebServerFactory,然后添加一个Tomcat中的Connector(监听80端口),并将请求转发到8080上去.https://www.cnblogs.com/notchangeworld/p/12669148.html
https://www.cnblogs.com/atomgame/p/12410985.html
keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 365
keytool -genkey -alias tomcat -keyalg RSA -validity 20000 -keystore keystore.p12
#ssl证书
server.ssl.key-store=classpath:keystore.p12
server.ssl.key-store-password=******
server.ssl.key-store-type=PKCS12
server.ssl.key-alias=tomcat
server.ssl.ciphers=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,SSL_RSA_WITH_RC4_128_SHA
@Configuration
public class TomcatConfig {
@Bean
TomcatServletWebServerFactory tomcatServletWebServerFactory() {
TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory() {
@Override
protected void postProcessContext(Context context) {
// TODO Auto-generated method stub
SecurityConstraint constraint = new SecurityConstraint();
constraint.setUserConstraint("CONFIDENTIAL");
SecurityCollection collection = new SecurityCollection();
collection.addPattern("/");
constraint.addCollection(collection);
context.addConstraint(constraint);
}
};
factory.addAdditionalTomcatConnectors(createTomcatConnector());
return factory;
}
private Connector createTomcatConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("http");
connector.setPort(80);
connector.setSecure(false);
connector.setRedirectPort(8080);
return connector;
}
}