2015-06-17 20 views
10

Khởi động mùa xuân có một số thuộc tính để cấu hình cổng web và cài đặt SSL, nhưng khi chứng chỉ SSL được đặt thì cổng http sẽ chuyển thành cổng https.Cách thiết lập Spring Boot để chạy các cổng HTTPS/HTTP

Vì vậy, làm thế nào tôi có thể giữ cho cả hai cổng chạy trên nó, ví dụ: 80 một 443 cùng một lúc?

Như bạn thấy, chỉ có thuộc tính cho một cổng, trong trường hợp này "server.ssl" được bật, điều làm cho cổng http bị vô hiệu hóa tự động.

############## 
### Server ### 
############## 
server.port=9043 
server.session-timeout=1800 
server.ssl.key-store=file:///C:/Temp/config/localhost.jks 
server.ssl.key-store-password=localhost 
server.ssl.key-password=localhost 
server.ssl.trust-store=file:///C:/Temp/config/localhost.jks 
server.ssl.trust-store-password=localhost 

Tôi đang cố gắng sử dụng ngay cả Tomcat hoặc Undertow. Tôi đánh giá cao sự giúp đỡ nào!

+0

Tại sao bạn muốn cả hai đều chạy cùng một lúc ? Một trong hai dòng là an toàn hoặc không an toàn, nhưng nó không phải là cả hai. – Makoto

+0

Một số phần của dự án của tôi cần được bảo đảm, và một số khác thì không. Như bạn biết Https lưu lượng truy cập chậm hơn so với Http, vì vậy tôi muốn trao đổi cả hai giao thức cùng một lúc như chúng ta làm trong bất kỳ máy chủ ứng dụng nào. –

+0

@Makoto - không nhất thiết. một cổng có thể hỗ trợ cả HTTP và HTTPS. ví dụ: http://bayou.io/release/0.9/docs/http/Server_SSL_Configuration.html – ZhongYu

Trả lời

21

Cấu hình khởi động mùa xuân bằng các thuộc tính, cho phép định cấu hình chỉ một trình kết nối. Những gì bạn cần là nhiều kết nối và cho điều này bạn phải viết một lớp cấu hình. Làm theo hướng dẫn trong

https://docs.spring.io/spring-boot/docs/current/reference/html/howto-embedded-servlet-containers.html

Bạn có thể tìm thấy một ví dụ làm việc của cấu hình https thông qua các thuộc tính và sau đó http dù EmbeddedServletContainerCustomizer dưới

http://izeye.blogspot.com/2015/01/configure-http-and-https-in-spring-boot.html?showComment=0718#c4988529876932015554

server: 
    port: 
    8080 
    ssl: 
    enabled: 
     true 
    keyStoreType: 
     PKCS12 
    key-store: 
     /path/to/keystore.p12 
    key-store-password: 
     password 
    http: 
    port: 
     8079 

@Configuration 
public class TomcatConfig { 

@Value("${server.http.port}") 
private int httpPort; 

@Bean 
public EmbeddedServletContainerCustomizer containerCustomizer() { 
    return new EmbeddedServletContainerCustomizer() { 
     @Override 
     public void customize(ConfigurableEmbeddedServletContainer container) { 
      if (container instanceof TomcatEmbeddedServletContainerFactory) { 
       TomcatEmbeddedServletContainerFactory containerFactory = 
         (TomcatEmbeddedServletContainerFactory) container; 

       Connector connector = new Connector(TomcatEmbeddedServletContainerFactory.DEFAULT_PROTOCOL); 
       connector.setPort(httpPort); 
       containerFactory.addAdditionalTomcatConnectors(connector); 
      } 
     } 
    }; 
} 
} 
+0

Liên kết đến tài liệu Spring không hoạt động nữa không. – deamon

Các vấn đề liên quan