Java skill - 服务同时开始https和http端口

Java skill - 服务同时开始https和http端口

添加ssl配置

在配置文件中添加配置

yml 复制代码
server:
  # ssl证书配置
  ssl:
    # 双向证书配置
    # 证书文件路径
    key-store: /opt/ops/cert/xes.p12
    # 证书密码
    key-store-password: 123456
    # 证书类型
    key-store-type: PKCS12
    # 开启ssl
    enabled: true
    # 证书文件路径
    trust-store: /opt/ops/cert/xes.p12
    # 证书密码
    trust-store-password: 123456
    # 证书类型
    trust-store-type: PKCS12
    # 访问必须传入证书
    client-auth: need
  # https端口
  port: 7001

代码开启http端口

java 复制代码
@Configuration
public class TomcatConfig {

    @Bean
    public TomcatServletWebServerFactory servletContainer() {
        TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
        tomcat.addAdditionalTomcatConnectors(createStandardConnector());
        return tomcat;
    }
    /**
     * 配置http
     * @return
     */
    private Connector createStandardConnector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setPort(7000);
        return connector;
    }
}

讲解

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

大坑

这种配置方式会先开启https-7001端口,然后才打开http-7000端口,如果需要nacos注册发现的话,nacos发现的是https-7001端口,如果你这个服务被其他服务通过feign调用的话,就会请求错误,因为feign默认的是http请求,但是feign在nacos拿到的7001端口是https端口,所以,这一点大家一定要注意

如果大家想解决这个问题,那就需要先打开http端口,然后打开https端口,分享给大家这篇文章【Java skill - 指定服务打开两个端口的顺序

相关推荐
Vic101011 分钟前
Redis防重复点击与分布式锁实现方案对比笔记
java·redis·笔记·分布式
计算机毕设指导63 分钟前
基于微信小程序的派出所业务管理系统【源码文末联系】
java·spring boot·mysql·微信小程序·小程序·tomcat·uniapp
ohoy11 分钟前
Xxl-Job实现订单30分钟未支付自动取消
java
明洞日记12 分钟前
【设计模式手册022】抽象工厂模式 - 创建产品家族
java·设计模式·抽象工厂模式
用户83071968408213 分钟前
Spring Boot 多数据源与事务管理深度解析:从原理到实践
java·spring boot
Yiii_x13 分钟前
基于多线程机制的技术应用与性能优化
java·经验分享·笔记
uup13 分钟前
包装类的 “缓存陷阱”:Integer.valueOf (128) == 128 为何为 false?
java
小徐Chao努力13 分钟前
Go语言核心知识点底层原理教程【Map的底层原理】
java·golang·哈希算法
后端小张14 分钟前
【AI 学习】LangChain框架深度解析:从核心组件到企业级应用实战
java·人工智能·学习·langchain·tensorflow·gpt-3·ai编程
天天摸鱼的java工程师19 分钟前
后端密码存储优化:BCrypt 与 Argon2 加密方案对比
java·后端