【发布时间】:2020-08-29 19:54:11
【问题描述】:
到目前为止,拥有 https 的最简单方法是在弹性 beanstalk 中使用负载均衡器,最近他们创建了一篇文章,其中陈述了以下内容。
您可以使用配置文件来配置将流量传递到您的应用程序以终止 HTTPS 连接的代理服务器。如果您想在单实例环境中使用 HTTPS,或者如果您将负载均衡器配置为在不解密的情况下通过流量,这将非常有用。
要启用 HTTPS,您必须允许端口 443 上的传入流量到达运行 Elastic Beanstalk 应用程序的 EC2 实例。为此,您可以使用配置文件中的 Resources 键将端口 443 的规则添加到 AWSEBSecurityGroup 安全组的入口规则中。
以下 sn-p 向 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 配置文件包含在您的 .ebextensions 文件夹中,可以在此处找到 https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/https-singleinstance-nodejs.html
将私钥内容替换为用于创建证书请求或自签名证书的私钥的内容。
我已经完成了在 ebextensions 文件夹中创建的配置文件中添加私钥内容和公共证书的步骤。部署有效,但是当我转到弹性 beanstalk url 时,它不是 https。
【问题讨论】:
-
我建议使用
application load balancer而不是classic load balancer,因为您可以轻松地在application load balancer设置中设置重定向规则,而无需像您一样覆盖Web 服务器配置文件。
标签: node.js amazon-web-services amazon-ec2 amazon-elastic-beanstalk