簡體   English   中英

亞馬遜 EC2 中的 HTTPS 設置

[英]HTTPS setup in Amazon EC2

我們如何在 Amazon EC2 中啟用 HTTPS? 我們的網站正在處理 HTTP。

首先,您需要打開 HTTPS 端口(443)。 為此,您轉到https://console.aws.amazon.com/ec2/並單擊左側的Security Groups鏈接,然后創建一個新的安全組,也可以使用 HTTPS。 然后,只需更新正在運行的實例的安全組或使用該組創建新實例。

完成這些步驟后,您的 EC2 工作就完成了,這完全是一個應用程序問題。

此答案針對在另一個站點(作為 GoDaddy)購買域並希望將 Amazon 免費證書與證書管理器一起使用的人

此答案使用 Amazon Classic Load Balancer(付費),請在使用前查看定價


步驟 1 - 向證書管理器申請證書

轉到證書管理器 > 申請證書 > 申請公共證書

在域名上,您將添加myprojectdomainname.com*.myprojectdomainname.com並繼續下一步

選擇電子郵件驗證和確認和請求

打開您收到的電子郵件(在您購買域的電子郵件帳戶上)並批准請求

之后,檢查myprojectdomainname.com*.myprojectdomainname.com的驗證狀態是否成功,如果成功則可以繼續步驟2

步驟 2 - 為負載均衡器創建安全組

在 EC2 上,轉到安全組 > 並創建安全組並添加 http 和 https 入站

它會是這樣的: 在此處輸入圖片說明

步驟 3 - 創建負載均衡器

EC2 > 負載均衡器 > 創建負載均衡器 > 經典負載均衡器(第三個選項)

在里面創建 LB - 你項目的 vpc On Load Balancer Protocol 添加 Http 和 Https 在此處輸入圖片說明

下一步 > 選擇退出安全組

選擇您在上一步中創建的安全組

下一步 > 從 ACM 選擇證書

選擇第1步的證書

下一個 >

在健康檢查中,我使用了 ping 路徑/ (一個斜杠而不是 /index.html)

第 4 步- 將您的實例與負載均衡器的安全組關聯

EC2 > 實例 > 單擊您的項目 > 操作 > 網絡 > 更改安全組

添加負載均衡器的安全組

第 5 步

EC2 > 負載均衡器 > 單擊您創建的負載均衡器 > 復制 DNS 名稱(A 記錄),它將類似於myproject-2021611191.us-east-1.elb.amazonaws.com

轉到 Route 53 > Routes Zones > 單擊域名 > 轉到 Records Sets(如果您在此處沒有您的域,請創建一個托管區域, Domain Name: myprojectdomainname.com並且Type: Public Hosted Zone

檢查您是否有記錄類型A (可能沒有),創建/編輯名稱為空的記錄集,類型 A,別名是並定位您復制的 dns

還創建一個新的A類型記錄集,名稱為*.myprojectdomainname.com ,別名 Yes 和 Target your domain (myprojectdomainname.com)。 這將使您可以通過 www.myprojectdomainname.com 和 subsite.myprojectdomainname.com 訪問您的站點。 注意:您需要配置反向代理(Nginx/Apache)才能這樣做。

在 NS 上復制 4 個名稱服務器值以用於下一步,它將類似於:

ns-362.awsdns-45.com ns-1558.awsdns-02.co.uk ns-737.awsdns-28.net ns-1522.awsdns-62.org

轉到 EC2 > Instances > 並復制 IPv4 公共 IP

第 6 步

在您購買域名的域名注冊網站上(在我的情況下是 GoDaddy)

將路由更改為http : <Your IPv4 Public IP Number>並選擇 Forward with masking

將名稱服務器 (NS) 更改為您復制的 4 個 NS,這可能需要 48 小時才能生效

Amazon EC2 實例只是虛擬機,因此您可以像在任何服務器上設置 SSL 一樣設置 SSL。

您沒有提及您在哪個平台上,因此很難提供更多信息。

一個老問題,但值得一提的是答案中的另一個選項。 如果您的域的 DNS 系統已在 Amazon Route 53 中定義,您可以在 EC2 前使用 Amazon CloudFront 服務並為其附加一個免費的 Amazon SSL 證書。 這樣,您將受益於擁有 CDN 以加快內容交付速度以及使用 HTTPS 協議保護您的域。

您還可以使用Amazon API Gateway 將您的應用程序置於 API Gateway 之后。 請檢查此常見問題解答

對於那些希望在 ec2 上免費 https 主要用於演示和測試目的的人來說,也必須有一個答案,他們可以非常快速地實現這一目標的一種方法是:

我的回答在這里描述了如何使用 EC2 在幾分鍾內實現 https 用於測試目的而無需創建證書

使用Elastic Load Balacing ,它支持負載均衡器上的 SSL 終止,包括從應用程序實例卸載 SSL 解密並提供 SSL 證書的集中管理。

您需要注冊一個域(例如在 GoDaddy 上)並在您的 ec2 實例前面放置一個負載均衡器 - 正如 DigaoParceiro 在他的回答中所說。

問題是亞馬遜在您的 ec2 實例上生成的域是短暫的。 今天域名屬於您,明天可能不屬於您。

因此,當您嘗試在 amazon 生成的域上注冊證書時,Let's encrypt 會拋出一個錯誤:

The ACME server refuses to issue a certificate for this domain name, because it is forbidden by policy

此處的更多詳細信息: https : //community.letsencrypt.org/t/policy-forbids-issuing-for-name-on-amazon-ec2-domain/12692/4

我發現的最好的資源之一是使用 let's encrypt,您的 EC2 實例不需要 ELB 或 cloudfront 即可擁有 HTTPS,只需按照以下簡單說明進行操作: 讓我們加密登錄到您的服務器並按照鏈接中的步驟操作。

正如其他人所說,通過編輯安全組打開端口 443 也很重要

您可以通過更改此鏈接中的站點名稱來查看您的證書或任何其他網站的證書

請不要忘記它的有效期只有 90 天

您需要為 HTTPS 創建一個安全組並將其分配給您的網絡服務器:

  1. 打開Amazon EC2 控制台

  2. 在導航窗格中選擇安全組

  3. 選擇創建安全組

  4. 對於創建安全組,執行以下操作:

  • 對於Security group name ,鍵入您正在創建的安全組的名稱。

  • (可選)鍵入您正在創建的安全組的描述

  • 對於VPC ,選擇包含您的 web 服務器 Amazon EC2 實例的 VPC。

  • 選擇添加規則 對於類型,選擇HTTPS

  • 選擇創建

  1. 在導航窗格中,選擇實例

  2. Select web 服務器實例旁邊的復選框。 然后選擇ActionsNetworkingChange Security Groups

  3. Select 您為 HTTPS 創建的安全組旁邊的復選框。然后選擇Assign Security Groups

使用 web 瀏覽器驗證 SSL/TLS 卸載

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM