簡體   English   中英

如何使用 https 在彈性 beantalk 中配置單個 ec2 實例

[英]How to configure single ec2 instance in elastic beanstalk with https

截至目前,擁有 https 的最簡單方法是在彈性 beantalk 中使用負載均衡器,他們最近創建了一篇文章,內容如下。

您可以使用配置文件來配置將流量傳遞到您的應用程序以終止 HTTPS 連接的代理服務器。 如果您想在單實例環境中使用 HTTPS,或者如果您將負載均衡器配置為在不解密的情況下傳遞流量,這將非常有用。

要啟用 HTTPS,您必須允許端口 443 上的傳入流量流向運行 Elastic Beanstalk 應用程序的 EC2 實例。 為此,您可以使用配置文件中的 Resources 鍵將端口 443 的規則添加到 AWSEBSecurityGroup 安全組的入口規則。

以下代碼段向 AWSEBSecurityGroup 安全組添加了一個入口規則,該規則將端口 443 開放給單個實例環境的所有流量:

.ebextensions/https-instance-securitygroup.config

Resources:
  sslSecurityGroupIngress: 
    Type: AWS::EC2::SecurityGroupIngress
    Properties:
      GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]}
      IpProtocol: tcp
      ToPort: 443
      FromPort: 443
      CidrIp: 0.0.0.0/0

他們要求您將另一個彈性 beanstalk 配置文件包含在 your.ebextensions 文件夾中,可以在此處找到https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/https-singleinstance-nodejs.html

將私鑰內容替換為用於創建證書請求或自簽名證書的私鑰的內容。

我已經完成了在 ebextensions 文件夾中創建的配置文件中添加私鑰內容和公共證書的步驟。 部署工作,但當我 go 到彈性豆莖 url 它不是 https。

您鏈接的 nginx 配置只會為端口 443 添加另一個偵聽器。它不會自動將 http 流量重定向到 https 端點。 你可以試試你的應用程序的 https 版本,看看它是否有效?

您可以覆蓋端口 80 的配置,但更簡單的解決方案可能是在您的應用程序代碼中處理它。 如果您查看端口 443 的配置,它將向您的 node.js 應用程序發送X-Forwarded-Proto header。

我認為這篇博文可能會對您有所幫助: http://blog.lookfar.com/blog/2017/07/19/how-to-https-all-the-things-in-node/

  app.use(function(req, res, next){
    if(req.header('x-forwarded-proto') !== 'https'){
        res.redirect('https://' + req.header('host') + req.url);
    }else{
        next();
    }
  })

暫無
暫無

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

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