(1)生成SSL证书文件
使用jdk keytool生成证书
keytool -genkey -alias test -keypass 1234qwer -keyalg RSA -sigalg sha256withrsa -keysize 1024 -validity 365 -keystore ./localhost.jks
使用管理员账号操作,其中密钥库口令是1qaz2wsx
其中localhost.jks是生成的证书文件
(2)Spring Boot项目
TestController类
package cn.hwd.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("test")
public class TestController {
@RequestMapping(value = "f1", method = RequestMethod.GET)
public String f1() {
return "hello world";
}
}
TomcatServerCustomer类
package cn.hwd.controller;
import org.apache.catalina.connector.Connector;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
import org.springframework.stereotype.Component;
@Component
public class TomcatServerCustomer implements WebServerFactoryCustomizer<TomcatServletWebServerFactory> {
@Override
public void customize(TomcatServletWebServerFactory factory) {
Connector httpConn = new Connector("HTTP/1.1");
httpConn.setPort(82);
factory.addAdditionalTomcatConnectors(httpConn);
}
}
application.properties配置文件
server.port=456
server.ssl.enabled=true
server.ssl.key-store=classpath:localhost.jks
server.ssl.key-password=1234qwer
server.ssl.key-store-password=1qaz2wsx
其中localhost.jks是第(1)步生成的证书文件
(3)测试