2017-03-11 5 views
1

Ich starte eine Spring Boot (Jhipster/Undertow) Anwendung auf Port 8080 auf einer AWS EC2 Instanz.Spring Boot mit Embedded Undertow hinter AWS ELB - HTTPS Umleitung

Ich habe eine AWS ELB

80 -> 8080 
443 (SSL termination happens here) -> 8080 

Die Anwendung verwendet Spring Security umleiten konfiguriert und wenn Sie Benutzer http://example.com ankommt will ich es https://example.com, umleiten SSL zu verwenden.

Ich habe verschiedene Beispiele für die Konfiguration in Tomcat gefunden, aber keine mit Undertow.

Ich habe dies versucht, mit einem zweiten Port 8089, und es Redirect wie erforderlich, aber dies bewirkt, dass Port 8080 auch umleitet, was ich nicht will.

80 -> 8089 
443 (SSL termination happens here) -> 8080 

@Bean 
public EmbeddedServletContainerFactory undertow() { 
    UndertowEmbeddedServletContainerFactory undertow = new UndertowEmbeddedServletContainerFactory(); 
    undertow.addBuilderCustomizers(builder -> builder.addHttpListener(8089, "0.0.0.0")); 
    undertow.addDeploymentInfoCustomizers(deploymentInfo -> { 
     deploymentInfo.addSecurityConstraint(new SecurityConstraint() 
       .addWebResourceCollection(new WebResourceCollection() 
         .addUrlPattern("/*")) 
       .setTransportGuaranteeType(TransportGuaranteeType.CONFIDENTIAL) 
       .setEmptyRoleSemantic(SecurityInfo.EmptyRoleSemantic.PERMIT)) 
       .setConfidentialPortManager(exchange -> 443); 
    }); 
    return undertow; 
} 

Wie kann ich Undertow konfigurieren, um dies zu erreichen?

+0

https://twitter.com/ankinson/status/829256167700492288 vielleicht beziehen sich auf ein ähnliches Problem, das Sie lösen möchten? –

Antwort

0

Das ist für mich gearbeitet, wenn ich hatte das gleiche Problem:

Setzen Sie den Port 80 von jhipster (Sie können es in der application-prod.yml ändern).

Amazon ELB, wenn sie von http auf https fügt einige Header Umleitung, die Sie in der gleichen Datei ansprechen sollte:

server: use-forward-headers: true port: 80

Auch müssen Sie die https von jhipster erzwingen: https://jhipster.github.io/tips/007_tips_enforce_https.html

Verwandte Themen