2017-04-15 2 views
0

우리는 Spring Cloud Netflix, Eureka 및 Zuul과 함께 우리의 환경에서 실행되는 몇 가지 서비스를 제공합니다. 또한 서비스 개발을 위해 Spring Boot를 사용합니다.F5 또는 ZUUl/Eureka/Services에서의 SSL 종료?

또한 외부 요청을 수신하고 구성된 규칙에 따라 ZUUL 인스턴스 중 하나로 라우팅하는 하드웨어 부하 분산 장치로 F5를 사용합니다.

현재 우리는 서비스 간 통신을 위해 HTTP를 사용합니다. 이제 HTTPS를 통해 모든 통신을 보호하려고합니다.

ZUUL 및 Eureka를 포함한 모든 서비스는 장애 조치를 위해 별도의 시스템에 2 개의 인스턴스로 확장됩니다.

내 질문에 내가 설정하고 유레카, ZUUL 광고 기타 다운 스트림 서비스 (OR)를 포함하여 각 서비스에 대해 HTTPS를 사용해야합니다 F5에 대해서만 HTTPS를 사용할 수 있습니까? HTTP 자체에 다른 인스턴스를 남겨 두십시오.

대부분의로드 밸런서가 제공하는 SSL 종단/오프로드라는 기능에 대해 들어 봤습니다. F5에서 지원하는지 모르겠습니다. 지원한다면 HTTPS에만 사용하고 나머지는 HTTP로 남겨 두는 것이 좋습니다.

각 인스턴스 (나중에로드에 따라 변경 될 수 있음)에 대한 SSL 설정의 복잡성을 줄이고 SSL 암호 해독 및 암호화에 내재 된 느린 속도를 줄일 수 있다고 생각합니다.

유레카/zuul 및 다운 스트림 서비스를 포함하여 모든 인스턴스를 보호해야합니까 아니면 F5에서만 ssl-termination을 수행해야합니까?

+0

예, F5는 SSL을 오프로드 할 수 있으며 매우 효과적입니다 (완전 공개 : 저는 F5에서 작업합니다). 전체 오프로드를 수행하여 서비스에 전달하거나 전달 또는 보안 서비스를 검사하도록 오프로드 할 수 있습니다 , 다시 encyrpt하고 백엔드 서비스로 돌아갑니다. 매우 유연하며 다양한 방식으로 비즈니스 및 보안 요구 사항을 충족하도록 구성 할 수 있습니다. –

답변

0

백 엔드 끝 점이 HTTPS이면로드 밸런서는 내용을 검사 할 수 없으므로 TCP 계층에서로드 균형을 조정해야합니다. 로드 밸런서 엔드 포인트가 HTTPS이면 내부 트래픽을 암호화하는 요점이 거의 없으며로드 밸런서는 트래픽을 검사하고 트래픽을 라우팅 할 위치를 결정할 수 있습니다 (예 : 고정 세션). 응용 프로그램 끝점에서 원래 요청이 HTTPS (보통 경우)임을 알아야하는 경우 HTTP 헤더가 내부 레그에 추가되어 사실을 알리고이 사실상의 규칙은 X-FORWARDED-PROTO 헤더입니다.

LB-to-app 레그를 선명하게하려면 세그먼트를 신뢰할 수 있고 LB를 우회하여 앱 종점에 직접 연결할 수 없는지 확인해야합니다.