2017-04-15 117 views
0

我們在Spring Cloud Netflix,Eureka和Zuul的環境中運行一些服務。另外,我們使用Spring Boot來開發服務。SSL終止F5或ZUUl/Eureka /服務?

我們還將F5作爲硬件負載平衡器,它接收外部請求並根據配置的規則將它們路由到ZUUL實例之一。

截至目前,我們使用HTTP進行服務之間的通信。我們現在想要通過HTTPS保護所有通信。

包括ZUUL和Eureka在內的所有服務都在不同的機器中使用兩個實例進行擴展以實現故障轉移。

我的問題是我應該爲每個服務設置並啓用HTTPS,包括Eureka,ZUUL和其他下游服務(OR)是否可以僅爲F5使用HTTPS。並將其他實例留在HTTP本身中。

我聽說過大多數負載平衡器提供的稱爲SSL終止/卸載的功能。我不確定F5是否支持它。如果它支持,那麼僅將它用於HTTPS並將其餘的保留在HTTP中才有意義。

我覺得這可以減少在建立SSL爲每個實例(這可以在未來根據負載變化),也減少了,這將是固有的SSL加密和解密緩慢的複雜性。

我是否應該保護包括eureka/zuul和下游服務在內的每個實例,或者僅在F5處進行ssl-termination。

+0

是,F5可以卸載SSL,並且做得非常非常好(全面披露:我對F5工作。)你可以做一個完整的卸載,並在明確傳遞給你的服務,或者您也可以卸載檢查交貨或安全服務,然後重新啓用並傳回您的後端服務。非常靈活,可以通過多種方式進行配置以滿足您的業務和安全要求。 –

回答

0

如果後端端點是HTTPS,則負載平衡器需要在TCP層負載均衡,因爲它們無法檢查內容。如果負載均衡器端點本身是HTTPS,那麼通常對內部流量進行加密的點很少,並且負載均衡器可以檢查流量並做出智能決策將流量路由到哪裏(例如粘滯會話)。如果應用程序端點需要知道原始請求是HTTPS(其通常的情況),那麼一個HTTP標頭被添加到內部腿來公佈,事實上的慣例是所述X-FORWARDED-PROTO報頭。

如果您選擇清除LB到應用程序的邊界,那麼您需要確保該段可信,並且您的應用程序端點無法直接訪問,繞過LB.