步骤

购买并申请好SSL证书

下载tomcat证书文件(.pfx)

  • SSL证书 .pem转.pfx

1
2
//执行会提示设置密码(即 .txt文件内容)
openssl pkcs12 -export -out xxx.pfx -inkey private.key -in xxx.pem

解压证书文件

配置

  • 复制 .pfx文件 到项目 resources 目录

  • 上传 .pfx文件 到服务器 jar包 同级目录

  • 配置 application-pro.yml

1
2
3
4
5
6
7
8
9
server:
  port: 443
  ssl:
    # 服务器.pfx文件路径
    key-store: /usr/java/jar/3770607.top.pfx
    # .txt文件内容
    key-store-password: JfILF
    # 文件类型(填PKCS12)
    key-store-type: PKCS12
  • HTTP自动转HTTPS

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package com.wing.common.config;

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;

/**
 * @author
 */
@Configuration
public class HttpsConfig {

    @Bean
    public Connector connector(){
        Connector connector=new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setScheme("http");
        connector.setPort(80);
        connector.setSecure(false);
        connector.setRedirectPort(443);
        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;
    }
}