Java skill - 指定服务打开两个端口的顺序

Java skill - 指定服务打开两个端口的顺序

继上一篇【Java skill - 服务同时开始https和http端口】,我们按照https、http的顺序打开端口,这篇我们就看看如何反过来,按照http、https的顺序打开端口。

添加ssl配置

在配置文件中添加配置

server:
  # http端口
  port: 7000

代码开启https端口

@Configuration
public class TomcatConfig {
    private String trustStorePassword = "123456";
    private String trustStore = "/opt/ops/cert/xes.p12";
    private String keyStorePassword = "123456";
    private String keyStore = "/opt/ops/cert/xes.p12";
    @Bean
    public WebServerFactoryCustomizer<ConfigurableWebServerFactory> webServerFactoryCustomizer() {
        return factory -> {
            if (factory instanceof TomcatServletWebServerFactory) {
                // 创建和配置 SSLHostConfig 对象
                SSLHostConfig sslHostConfig = new SSLHostConfig();
                sslHostConfig.setTruststoreFile(trustStore);
                sslHostConfig.setTruststorePassword(trustStorePassword);
                sslHostConfig.setTruststoreType("PKCS12");
                sslHostConfig.setCertificateKeystoreFile(keyStore);
                sslHostConfig.setCertificateKeystorePassword(keyStorePassword);
                sslHostConfig.setCertificateKeystoreType("PKCS12");
                sslHostConfig.setCertificateVerification("true");
                TomcatServletWebServerFactory tomcat = (TomcatServletWebServerFactory) factory;
                Connector connector = new Connector(TomcatServletWebServerFactory.DEFAULT_PROTOCOL);
                connector.setAttribute("SSLEnabled", "true");
                // 添加 SSLHostConfig 到连接器
                connector.addSslHostConfig(sslHostConfig);
                connector.setScheme("https");
                connector.setSecure(true);
                connector.setPort(7001);
                tomcat.addAdditionalTomcatConnectors(connector);
            }
        };
    }
}

讲解

  1. 服务启动后,yml的ssl配置会执行并开启7000的http端口
  2. 然后,新加的配置类会执行并开启7001的https端口

注意

sslHostConfig.setCertificateVerification("true");

上面这句java代码一定要注意,如果不设置的话,https进来的请求头中是没有【javax.servlet.request.X509Certificate】证书信息的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值