我想在我的 AWS Elastic Beanstalk 环境中向应用程序负载均衡器添加额外的 SSL 证书。
解决方法
应用程序负载均衡器支持多个 SSL 证书,但是 Elastic Beanstalk 中的 SSLCertificateArns 选项仅接受每个侦听器一个证书。要向应用程序负载均衡器添加其他 SSL 证书,必须创建基于资源的 .ebextension。
向应用程序负载均衡器添加第二个 SSL 证书
1. 在源包的根目录下创建 .ebextensions 文件夹。
2. 在 .ebextensions 文件夹中,根据以下示例创建一个 .config 文件:
option\_settings:
aws:elbv2:listener:443:
Protocol: HTTPS
SSLCertificateArns: "cert-arn-1"
Resources:
AddingSSLCert2:
Type: "AWS::ElasticLoadBalancingV2::ListenerCertificate"
Properties:
ListenerArn:
Ref : "AWSEBV2LoadBalancerListener443"
Certificates:
- CertificateArn: "cert-arn-2"
**注意:**在前面的代码片段中,将 cert-arn1 和 cert-arn2 替换为证书的 Amazon 资源名称(ARN)。
要添加其他证书,请添加新的 ListenerCertificate 资源:
option\_settings:
aws:elbv2:listener:443:
Protocol: HTTPS
SSLCertificateArns: "cert-arn-1"
Resources:
AddingSSLCert2:
Type: "AWS::ElasticLoadBalancingV2::ListenerCertificate"
Properties:
ListenerArn:
Ref : "AWSEBV2LoadBalancerListener443"
Certificates:
- CertificateArn: "cert-arn-2"
AddingSSLCert3:
Type: "AWS::ElasticLoadBalancingV2::ListenerCertificate"
Properties:
ListenerArn:
Ref : "AWSEBV2LoadBalancerListener443"
Certificates:
- CertificateArn: "cert-arn-3"
**注意:**在前面的代码片段中,将 cert-arn1、cert-arn-2 和 cert-arn3 替换为您的证书 ARN。
option_settings 部分在端口 443 上创建 HTTPS 侦听器并将一个证书附加到该侦听器。如果您从 Elastic Beanstalk 控制台创建 HTTPS 侦听器,则可以从 .config 文件中删除 option_settings 部分。Resources 部分创建了另一个资源,该资源将一个额外的证书附加到侦听器。
3. 将 .ebextensions 更新应用于您的应用程序包。
4. 重新部署您的应用程序。
您的应用程序会更新现有的应用程序负载均衡器,而无需更换它。
**重要事项:**这个额外的证书不会出现在 Elastic Beanstalk 控制台中。要验证您的证书是否已添加到应用程序负载均衡器,请完成以下部分中的步骤。
确认您的 SSL 证书已添加到应用程序负载均衡器侦听器 443
- 打开 Amazon Elastic Compute Cloud(Amazon EC2)控制台。
- 然后,从导航窗格中选择负载均衡器。
- 选择侦听器选项卡。
- 对于侦听器 443,选择查看/编辑证书。