Spring Wolke: Ribbon und HTTPS

9

Wir wollen HTTPS für unsere Microservices-Kommunikation basierend auf Feign und Ribbon verwenden. Die Dienste basieren auf Spring Boot und Tomcat ist korrekt eingerichtet. Die Instanzen sind mit der HTTPS-URL registriert und Secure Port ist auf Eureka aktiviert. Wenn wir jedoch über Feign einen anderen Microservice anrufen, erkennt das zugrundeliegende Ribbon das Protokoll nicht und greift auf HTTP zurück. Ich könnte dieses Problem lösen, indem ich das Protokoll der Annotation FeignClient wie folgt hinzufüge:

%Vor%

Aber es scheint, dass der Zuul-Proxy und die Hystrix / Turbine, die auch Ribbon intern verwenden, dasselbe HTTP-Fallback-Problem haben. Gibt es eine Möglichkeit, Ribbon zentral zu konfigurieren, um HTTPS als Standard zu verwenden oder die Einstellung securePort der registrierten eureka-Instanz zu verwenden?

Eureka-Instanzkonfiguration:

%Vor%

Mit diesen Einstellungen sieht es in Eureka so aus, als ob der Dienst auf HTTPS läuft. Der Zuul-Proxy funktioniert problemlos, verwendet jedoch die HTTP-URL, um den Dienst aufzurufen. Sie müssen SSL in Spring Boot eingebettetem Tomcat aktivieren, indem Sie ein Serverzertifikat in einem Schlüsselspeicher bereitstellen:

%Vor%

Tomcat läuft dann nur auf HTTPS und der HTTP-Port ist blockiert, aber dann bekomme ich: localhost:8081 failed to respond , weil eine HTTP-URL verwendet wird, um den Dienst aufzurufen. Wenn Sie ribbon.IsSecure=true setzen, wird die Benutzer-Service-URL korrekt generiert, aber der Ribbon-Loadbalancer kann den Benutzer-Service in Eureka nicht nachschlagen: Load balancer does not have available server for client: users . Ich habe auch versucht, users.ribbon.IsSecure=true nur im zuul-Proxy zu setzen, bekomme aber immer noch den gleichen Fehler.

%Vor%     
Daniel Sass 03.06.2015, 14:24
quelle

2 Antworten

4

Wir haben das zuul-Proxy-Problem jetzt gelöst, indem wir

gesetzt haben %Vor%

, damit sich alle Dienste auch im Pool der sicheren virtuellen Hosts in com.netflix.discovery.shared.Applications befinden. Das hilft dem Erkennungsprozess, die Instanzen in Eureka zu finden.

Allerdings hat das Hystrix-Dashboard noch ein ähnliches Problem

    
Daniel Sass 17.06.2015, 11:49
quelle
0

Ich habe das gleiche Problem beim Konfigurieren des Zuul-Proxys, um die Ribbon-Verbindung zu Micro-Services zu verwenden, die auf https laufen: RibbonRoutingFilter betrachtet requestURI und erstellt RestClient, wenn die run-Methode ausgeführt wird. Ich habe Eureka so konfiguriert, dass es auf http läuft. Es ist der auf Eureka registrierte https-Microservice, auf den Ribbon nicht zugreifen kann.

Ссылка

    
blindstack 16.06.2015 13:50
quelle