![](/img/trans.png)
[英]AWS Application Load Balancer to EC2 Node over HTTPS not responding
[英]Gatsby site serving on EC2 with pm2 node with aws classic load balancer needs https
我在開發模式下運行 Gatsby 站點作為 EC2 上的開發服務器,負載均衡器從端口 80 指向 8000。我在我的域 dns 上設置了一個 cname 以指向負載均衡器,這工作正常。 但是,我需要將此頁面顯示為 iframe 。
我已通讀此https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-create-https-ssl-load-balancer.html大部分內容都很簡單。
到目前為止,我所做的是在負載均衡器上為 443 https 創建了一個偵聽器,並將 https 443 添加到安全組中。 我已成功向我與 aws 一起使用的子域頒發了證書,並將其附加到負載均衡器偵聽器。
Gatsby 有一篇關於開發模式自定義證書的文章https://www.gatsbyjs.org/docs/local-https/#custom-key-and-certificate-files我要找的是證書文件,授權文件和密鑰文件,以便在下面傳遞此命令
我在 aws 證書管理器中的哪里可以找到這些文件。 我認為這是我需要讓 https 工作的最后一塊,如果我錯了,請糾正我。
提前謝謝。
gatsby develop --https --key-file../relative/path/to/key.key --cert-file../relative/path/to/cert.crt --ca-file../relative/path/to/ca.crt
這是我用來請求我的證書的過程,它說它已頒發https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-public.html
但是如何將它與帶有 gatsby 的自定義 https 命令一起使用?
有一個導出選項,但它只表示私鑰。 我需要創建一個私鑰然后我可以導出我需要的這些文件嗎?
我什至需要在 gatsby 這邊運行 https。 我使用 apache 觀看了一個視頻,並且沒有對 apache 服務器進行任何更改以使 https 與負載平衡器一起工作。
這是我的負載均衡器偵聽器的屏幕截圖
這是我的安全組的圖像
如果我為 gatsby develop 運行--https
,它會破壞我的網站,我無法再通過負載均衡器或端口 8000 訪問它。所以不知道在這里做什么。
我建議不要加密您的 ELB 和 EC2 實例之間的連接。 如果您的 EC2 實例無法公開訪問,而只能通過負載均衡器訪問,則最佳做法是終止負載均衡器上的 SSL 連接。 無需在 AWS VPC 內(即 ELB 和目標實例之間)加密 HTTP 請求。
您可以創建一個在 HTTP (80) 和 HTTPS (443) 端口上偵聽的負載均衡器。 如果您指定 HTTPS 偵聽器將請求發送到端口 80 上的實例,負載均衡器將終止請求,並且從負載均衡器到實例的通信未加密。 [1]
有一些討論(例如在 Kevin Burke 的博客上)是否有必要加密 VPC 內的流量。 [2] 然而,大多數人可能沒有這樣做。
這對您意味着什么:為您的目標使用與以前相同的實例協議:HTTP 通過端口 8000 用於兩個偵聽器。 不要為您的 Gatsby 服務設置 SSL。 請改用普通的 HTTP 服務器配置。 在負載平衡器上使用 SSL 終止時,無需更改 ELB 目標。
[1] https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-create-https-ssl-load-balancer.html
[2] https://acloud.guru/forums/aws-certified-security-specialty/discussion/-Ld2pfsORD6ns5dDK5Y7/tlsssl-termination?answer=-LecNy4QX6fviP_ryd7x
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.