目录

一 SpringBoot配置HTTPS

二 自己生成CSR

1 解压已下载的证书压缩包,获得“xxx.pem”文件和xxx.key文件

2 使用OpenSSL工具,将pem格式证书转换为PFX格式证书,得到“server.pfx”文件

3 使用Keytool工具,将PFX格式证书文件转换成JKS格式,得到“xxx.jks”文件

三 在SpringBoot中配置

1 将xxx.jks放入resources文件夹下

2 启动测试

四 同时配置http和https都能访问

1 新加配置

2 在SpringBoot启动类中添加

五 参考资料


一 SpringBoot配置HTTPS

在工作中时长会遇到配置https,SpringBoot自带的是tomcat服务器一般使用的.jks文件配置SSL加密。

过程中会用到两个工具:OpenSSL,Keytool工具。

OpenSSL:下载地址:http://slproweb.com/products/Win32OpenSSL.html

keytool工具,这是jdk自带的工具,在jdk的/bin目录下可以找到。

二 自己生成CSR

https供应商不会直接提供.jks文件。所以,我们就需要将加密文件转换成所需要的jks文件。

1 解压已下载的证书压缩包,获得“xxx.pem”文件和xxx.key文件

“server.pem”文件包括两段证书代码“-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”,分别为服务器证书和中级CA证书。

2 使用OpenSSL工具,将pem格式证书转换为PFX格式证书,得到“server.pfx”文件

找到openssl的bin目录,找到openssl.exe文件,单击右键以管理员身份运行,打开命令行,输入命令:

pkcs12 -export -out D:\xxx.pfx -in D:\xxx.pem -inkey D:\xxx.key

按照要求输入两次密码,这时在d盘生成了xxx.pfx文件 请牢记此处输入的PFX证书密码。后续设置JKS密码需要与此处设置的PFX密码保持一致,否则可能会导致Tomcat启动失败。

3 使用Keytool工具,将PFX格式证书文件转换成JKS格式,得到“xxx.jks”文件

keytool -importkeystore -srckeystore D:\xxx.pfx -destkeystore D:\xxx.jks -srcstoretype PKCS12 -deststoretype JKS

按照提示输入2次JKS证书密码

第三次提示输入源密钥库口令: 输入生成xxx.pfx中设置PFX证书密码

查看D盘下是否生成 xxx.jks

生成完成后,新建一个“keystorePass.txt”文件,将JKS的密码保存在该文件中。

三 在SpringBoot中配置

1 将xxx.jks放入resources文件夹下

#配置jks存放位置
server.ssl.key-store=classpath:xxx.jks
#https端口号
server.port=8090
#是否启用SSL证书
server.ssl.enabled=true
#密钥库密码
server.ssl.key-store-password=jks密码
#密钥库类型(JKS类型)
server.ssl.key-store-type=JKS

2 启动测试

四 同时配置http和https都能访问

1 新加配置

#http端口号
http.port=18092

2 在SpringBoot启动类中添加

// 获取配置端口
@Value("${http.port}")
    private Integer httpPort;

@Bean
    public ServletWebServerFactory servletContainer() {
        TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
        // 添加http
        tomcat.addAdditionalTomcatConnectors(createStandardConnector());
        return tomcat;
    }

/**
     * 配置http
     *
     * @return connector
     */
    private Connector createStandardConnector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setPort(httpPort);
        return connector;
    }

 

五 参考资料

https://www.caojingbin.com/post/40

https://www.cnblogs.com/yangchongxing/p/13834467.html

 

 

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐