AWS Elastic Beanstalk
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

配置 Elastic Beanstalk 环境负载均衡器以终止 HTTPS

要更新您的 AWS Elastic Beanstalk 环境以使用 HTTPS,您需要为您的环境中的负载均衡器配置 HTTPS 侦听器。以下两种类型的负载均衡器支持 HTTPS 侦听器:传统负载均衡器 和 应用程序负载均衡器。

您可以使用 Elastic Beanstalk 控制台或配置文件来配置安全侦听器并分配证书。

注意

单实例环境没有负载均衡器并且不支持负载均衡器上的 HTTPS 终止。

使用 Elastic Beanstalk 控制台配置安全侦听器

将证书分配至环境的负载均衡器

  1. 打开 Elastic Beanstalk 控制台

  2. 导航到您的环境的管理页

  3. 选择 Configuration

  4. 负载均衡器配置卡上,选择修改

    注意

    如果负载均衡器配置卡没有修改按钮,则表示您的环境没有负载均衡器

  5. 修改负载均衡器页上,根据与您的环境关联的负载均衡器类型,该过程将会有所不同。

    • 传统负载均衡器

      1. 选择添加侦听器

      2. 传统负载均衡器 侦听器对话框中,配置以下设置:

        • 对于侦听器端口,请键入传入流量端口,通常为 443

        • 对于侦听器协议,选择 HTTPS

        • 对于实例端口,请键入 80

        • 对于实例协议,选择 HTTP

        • 对于 SSL 证书,选择您的证书。

      3. 选择 Add

    • 应用程序负载均衡器

      1. 选择添加侦听器

      2. 应用程序负载均衡器 侦听器对话框中,配置以下设置:

        • 对于端口,请键入传入流量端口,通常为 443

        • 对于协议,选择 HTTPS

        • 对于 SSL 证书,选择您的证书。

      3. 选择 Add

      注意

      对于 传统负载均衡器 和 应用程序负载均衡器,如果下拉菜单中未显示任何证书,您应在 AWS Certificate Manager (ACM) 中为您的自定义域名创建或上传证书(首选)。或者,使用 AWS CLI 将证书上传到 IAM。

    • 网络负载均衡器

      1. 选择添加侦听器

      2. 网络负载均衡器侦听器对话框中,对于端口,请键入传入流量端口,通常为 443

      3. 选择 Add

  6. 选择 Apply

使用配置文件配置安全侦听器

您可以使用以下配置文件之一在负载均衡器上配置安全侦听器。

例 .ebextensions/securelistener-clb.config

在您的环境具有传统负载均衡器时,请使用该示例。该示例使用 aws:elb:listener 命名空间中的选项通过指定的证书在端口 443 上配置 HTTPS 侦听器,并将解密的流量转发到端口 80 上的环境实例。

option_settings: aws:elb:listener:443: SSLCertificateId: arn:aws-cn:acm:us-west-2:1234567890123:certificate/#################################### ListenerProtocol: HTTPS InstancePort: 80

将突出显示的文本替换为您的证书的 ARN。证书可以是您在 AWS Certificate Manager (ACM) 中创建或上传的证书(首选),也可以是通过 AWS CLI 上传到 IAM 的证书。

有关 传统负载均衡器 配置选项的更多信息,请参阅 传统负载均衡器配置命名空间

例 .ebextensions/securelistener-alb.config

在您的环境具有应用程序负载均衡器时,请使用该示例。该示例使用 aws:elbv2:listener 命名空间中的选项通过指定的证书在端口 443 上配置 HTTPS 侦听器。该侦听器将流量路由到默认进程。

option_settings: aws:elbv2:listener:443: ListenerEnabled: 'true' Protocol: HTTPS SSLCertificateArns: arn:aws-cn:acm:us-west-2:1234567890123:certificate/####################################

例 .ebextensions/securelistener-nlb.config

在您的环境具有网络负载均衡器时,请使用该示例。该示例使用 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 SourceSecurityGroupName: {"Fn::GetAtt" : ["AWSEBLoadBalancer" , "SourceSecurityGroup.GroupName"]}