1、生成证书,可以使用自签名证书或者从SSL证书授权中心获得
JDK中keytool是一个证书管理工具,可以生成自签名证书,这里使用JDK自带的keytool创建证书测试
打开cmd窗口,输入命令
keytool -genkey -alias tomcat -keyalg RSA -keystore ./https.keystore
按照提示操作

2、创建完成后,在用户根目录下查看生成的keystore文件,将它复制到项目的根目录下

3、在yml文件中添加配置

4、再建一个配置类

import org.apache.catalina.Context;
import org.apache.catalina.connector.Connector;
import org.apache.tomcat.util.descriptor.web.SecurityCollection;
import org.apache.tomcat.util.descriptor.web.SecurityConstraint;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class HttpsConfig {
@Bean
public Connector connector(){
Connector connector=new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("http");
//Connector监听的http的端口号
connector.setPort(8080);
connector.setSecure(false);
//监听到http的端口号后转向到的https的端口号
connector.setRedirectPort(8443);
return connector;
}
@Bean
public TomcatServletWebServerFactory tomcatServletWebServerFactory(Connector connector){
TomcatServletWebServerFactory tomcat=new TomcatServletWebServerFactory(){
@Override
protected void postProcessContext(Context context) {
SecurityConstraint securityConstraint=new SecurityConstraint();
securityConstraint.setUserConstraint("CONFIDENTIAL");
SecurityCollection collection=new SecurityCollection();
collection.addPattern("/*");
securityConstraint.addCollection(collection);
context.addConstraint(securityConstraint);
}
};
tomcat.addAdditionalTomcatConnectors(connector);
return tomcat;
}
}
5、运行原地址,自动跳转
本文详细介绍了如何使用JDK中的keytool工具生成自签名证书,并将其应用于Spring Boot应用中以实现HTTPS服务。通过创建配置类来设置连接器、安全约束等,实现了从本地证书到应用安全部署的全过程。

1万+

被折叠的 条评论
为什么被折叠?



