0

我正在嘗試向我的AWS Elastic Load Balancer添加HTTPS。如何在AWS Elastic Load Balancer上啓用HTTPS?

我獲得通過AWS證書管理器證書:我已經啓用 enter image description here

HTTPS的負載平衡器: enter image description here

我確信負載平衡器安全組接受0.0.0.0/0在443上: enter image description here

當在我的域上使用HTTP時,它工作。

但是,試圖加載我使用HTTPS域時,它不工作("ERR_CONNECTION_TIMED_OUT"


編輯和更新:

這是我試圖獲得API HTTPS工作,不一定是領域。域服務是來自S3的一個靜態文件(角網站應用程序),角色是調用負載平衡器(將請求傳輸到EC2實例)以獲取數據庫數據。

當角度通過HTTP直接通過負載均衡器域名稱調用API時,請求按照預期做出響應。

當角使得通過HTTPS相同的API調用,我得到以下錯誤:

enter image description here

+1

一切都看起來正確。你確定你的域名是指向負載均衡器,而不是直接指向實例嗎? –

+0

@MarkB感謝Mark B,這是一個很好的考慮......我不確定!讓我試着去驗證一下! – aero

+0

@MarkB感謝Mark B,我用更多信息更新了我的問題。角度js直接在它的api請求中調用負載均衡器的域名 - 當它通過HTTPS時失敗。 – aero

回答

1

您啓用HTTPS您的域名,而不是其亞馬遜擁有ELB域。您只能爲您擁有的域創建SSL證書。您無法爲「mydomain.com」啓用SSL,然後以某種方式在完全不同的域上工作。您需要更改您的AngularJS代碼,以便通過您爲其創建SSL證書的自定義域名來引用該API。您需要將域指向ELB並在ELB上爲該域安裝SSL證書。

+0

哈,我想這很明顯。謝謝你幫助我看到森林(樹木)。 – aero

0

Mark B提供了幾乎完整的解決方案。

由於我的JavaScript代碼通過AWS提供的DNS名稱調用彈性負載平衡器(ELB),因此無法爲我不擁有的域獲取SSL證書。

正如Mark B指出的那樣,我需要將我的JavaScript代碼指向我自己擁有的域,並且擁有SSL證書。

因此,我可以創建我自己的域的子域(例如api.mydomain.com),然後指向ELB。

A記錄(例如指向IP的域)看起來可以滿足需要。

但是,A記錄不能指向ELB,因爲它的IP可能會改變。

缺少的步驟是使用AWS Route 53將A Record指向代表我的AWS Elastic Load Balancer的別名(Route 53允許您這樣做)。

相關問題