對於客戶可以使用自己的自訂網域的 SaaS 應用程序,我將使用 Lets 加密來產生客戶網域的憑證。
我目前正在使用彈性豆莖(它使用ELB)。
我可以繼續使用豆莖嗎?
鑑於彈性負載平衡器必須處理憑證驗證,而我的憑證將位於我的實例上,我想我必須以某種方式自行將流量路由到我的實例。
有什麼值得的解決方法嗎?
客戶 -> 執行 haproxy 的 ec2 實例 -> ELB -> Beanstalk
SSL 將在執行 haproxy 的 ec2 執行個體處終止。
答案1
您在這裡有幾個選擇:
- 按照您提到的路線,在 HAProxy 實例叢集處終止 SSL,然後再透過 ELB 將流量轉送到您的執行個體。
- 將您的 ELB 變成 TCP 轉發器,這使 ELB 成為啞資料包洗牌器。在這裡你失去了 ELB 的一些好處,但這會起作用。在這種情況下,您將在託管應用程式的執行個體上終止 SSL,因此在負載平衡配置中,您將需要所有執行個體上的憑證副本。協調起來可能相當棘手,但可行。
- (也是我的首選選項)使用 ALB。 ALB 支援多個 SSL 證書,並且當用戶端指示 SNI 標頭時,將自動選擇正確的證書。您將能夠將所需的憑證片段(金鑰、憑證、中介)上傳到 IAM 並在 ALB 中選擇它們,所有這些都透過 API 進行。
ALB 除了 SNI 之外還有許多其他優點。 它們支援 HTTP/2、到多個目標群組的基於路徑的路由(在某些情況下有用),而且據我所知,它們比經典的 ELB 便宜。
是的,Elastic Beanstalk 確實支援 ALB。不幸的是,您可以 a) 僅選擇在環境建立時使用它,b) 僅透過新 UI 執行此操作。我已經發布了一些抱怨關於 UI 和 EB 在過去幾週內真正開始使用它的情況。希望他們將來能解決這些問題。同時,您至少應該能夠儲存目前環境的配置,從已儲存的配置啟動新的配置(在建立之前更改負載平衡器類型),然後在啟動並運行後切換 CNAME。
另請注意:您的環境必須配置為使用 VPC 才能使用 ALB。