How set up Spring Boot to run HTTPS / HTTP ports

后端 未结 6 670
半阙折子戏
半阙折子戏 2020-12-12 23:58

Spring boot have some properties to config web port and SSL settings, but once a SSL certificate is set the http port turns into https port.

So, how can I keep both

6条回答
  •  无人及你
    2020-12-13 00:27

    The currently accepted answer works perfectly but needs some adaption if you want it to work with Spring Boot 2.0.0 and onwards:

    @Component
    public class HttpServer {
      @Bean
      public ServletWebServerFactory servletContainer(@Value("${server.http.port}") int httpPort) {
          Connector connector = new Connector(TomcatServletWebServerFactory.DEFAULT_PROTOCOL);
          connector.setPort(httpPort);
    
          TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
          tomcat.addAdditionalTomcatConnectors(connector);
          return tomcat;
      }
    }
    

    or the kotlin version:

    @Component
    class HttpServer {
      @Bean
      fun servletContainer(@Value("\${server.http.port}") httpPort: Int): ServletWebServerFactory {
        val connector = Connector(TomcatServletWebServerFactory.DEFAULT_PROTOCOL)
        connector.setPort(httpPort)
    
        val tomcat = TomcatServletWebServerFactory()
        tomcat.addAdditionalTomcatConnectors(connector)
        return tomcat
      }
    }
    

提交回复
热议问题