本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在负载均衡器上配置 HTTPS 终止
要更新 AWS Elastic Beanstalk 环境以使用 HTTPS,您需要为环境中的负载均衡器配置 HTTPS 侦听器。两种类型的负载均衡器支持 HTTPS 侦听器:经典负载均衡器和 Application Load Balancer。
您可以使用 Elastic Beanstalk 控制台或配置文件配置安全侦听器和分配证书。
注意
单实例环境没有负载均衡器并且不支持负载均衡器上的 HTTPS 终止。
使用 Elastic Beanstalk 控制台配置安全侦听器
将证书分配至环境的负载均衡器
打开 Elastic Beanstalk 控制台
,然后在 Regions(区域)列表中选择您的 AWS 区域。 -
在导航窗格中,选择 Environments(环境),然后从列表中选择环境的名称。
注意
如果您有多个环境,请使用搜索栏筛选环境列表。
在导航窗格中,选择 Configuration(配置)。
-
在 Load balancer (负载均衡器) 配置类别中,选择 Edit (编辑)。
注意
如果 Load balancer (负载均衡器) 配置类别没有 Edit (编辑) 按钮,则表示您的环境没有负载均衡器。
-
在修改负载均衡器页上,根据与您的环境关联的负载均衡器类型,该过程将会有所不同。
-
经典负载均衡器
-
选择添加侦听器。
-
在 经典负载均衡器 listener (经典负载均衡器侦听器) 对话框中,配置以下设置:
对于侦听器端口,请键入传入流量端口,通常为
443
。对于侦听器协议,选择 HTTPS。
对于实例端口,请键入
80
。对于实例协议,选择 HTTP。
对于 SSL 证书,选择您的证书。
-
选择添加。
-
-
应用程序负载均衡器
-
选择添加侦听器。
-
在 Application Load Balancer listener (Application Load Balancer 侦听器) 对话框中,配置以下设置:
-
对于端口,请键入传入流量端口,通常为
443
。 -
对于协议,选择 HTTPS。
-
对于 SSL 证书,选择您的证书。
-
-
选择添加。
注意
对于经典负载均衡器和应用程序负载均衡器,如果下拉菜单中未显示任何证书,您应在 AWS Certificate Manager (ACM) 中为您的自定义域名创建或上传证书(首选)。或者,使用 AWS CLI 将证书上传到 IAM。
-
-
Network Load Balancer
-
选择添加侦听器。
-
在 Network Load Balancer listener (Network Load Balancer 侦听器) 对话框中,对于 Port (端口),请键入传入流量端口,通常为
443
。 -
选择添加。
-
-
-
要保存更改,请选择页面底部的 Apply(应用)。
使用配置文件配置安全侦听器
您可以使用以下配置文件之一在负载均衡器上配置安全侦听器。
例 .ebextensions/securelistener-clb.config
当您的环境具有经典负载均衡器时,请使用此示例。该示例使用 aws:elb:listener
命名空间中的选项通过指定的证书在端口 443 上配置 HTTPS 侦听器,并将解密的流量转发到端口 80 上的环境实例。
option_settings:
aws:elb:listener:443:
SSLCertificateId: arn:aws:acm:us-east-2:1234567890123:certificate/####################################
ListenerProtocol: HTTPS
InstancePort: 80
将突出显示的文本替换为您的证书的 ARN。证书可以是您在 AWS Certificate Manager (ACM) 中创建或上载的证书(首选),也可以是通过 AWS CLI 上载到 IAM 的证书。
有关经典负载均衡器配置选项的更多信息,请参阅经典负载均衡器配置命名空间。
例 .ebextensions/securelistener-alb.config
当您的环境具有 Application Load Balancer 时,请使用此示例。该示例使用 aws:elbv2:listener
命名空间中的选项通过指定的证书在端口 443 上配置 HTTPS 侦听器。该侦听器将流量路由到默认进程。
option_settings:
aws:elbv2:listener:443:
ListenerEnabled: 'true'
Protocol: HTTPS
SSLCertificateArns: arn:aws:acm:us-east-2:1234567890123:certificate/####################################
例 .ebextensions/securelistener-nlb.config
当您的环境具有 Network Load Balancer 时,请使用此示例。该示例使用 aws:elbv2:listener
命名空间中的选项在端口 443 上配置侦听器。该侦听器将流量路由到默认进程。
option_settings:
aws:elbv2:listener:443:
ListenerEnabled: 'true'
配置安全组
如果将负载均衡器配置为将流量转发到除端口 80 外的实例端口,则必须向安全组添加一个规则来允许来自负载均衡器的入站流量通过该实例端口。如果您在自定义 VPC 中创建环境,则 Elastic Beanstalk 会为您添加此规则。
您可以在 .ebextensions
目录的配置文件中为您的应用程序添加 Resources
键,从而添加此规则。
以下示例配置文件添加传入规则到 AWSEBSecurityGroup
安全组。这样将允许端口 1000 上来自负载均衡器安全组的流量。
例 .ebextensions/sg-ingressfromlb.config
Resources:
sslSecurityGroupIngress:
Type: AWS::EC2::SecurityGroupIngress
Properties:
GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]}
IpProtocol: tcp
ToPort: 1000
FromPort: 1000
SourceSecurityGroupId: {"Fn::GetAtt" : ["AWSEBLoadBalancerSecurityGroup", "GroupId"]}