在 Application Load Balancer 上配置多个 SSL 证书

Posted

技术标签:

【中文标题】在 Application Load Balancer 上配置多个 SSL 证书【英文标题】:Config for multiple SSL Certificates on Application Load Balancer 【发布时间】:2019-02-17 06:30:49 【问题描述】:

我想直接在我的 eb 扩展文件中为应用程序负载均衡器配置多个 ssl 证书,但无法在我的配置下方设置多个 ARN:

- namespace: aws:elbv2:listener:443
  option_name: SSLCertificateArns
  value: 'arn:aws:acm:eu-west-1:xxx' # or 'arn:aws:acm:eu-west-1:xxx,arn:aws:acm:eu-west-1:yyy'

https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options-general.html#command-options-general-elbv2-listener-default > SSLCertificateArns 只接受一个 ARN

我尝试在值中用逗号分隔 arn,但出现此错误

Updating Load Balancer listener named: arn:aws:elasticloadbalancing:eu-west-1:xxx failed Reason: Up to '1' certificate ARNs can be specified, but '2' were specified (Service: AmazonElasticLoadBalancingV2; Status Code: 400; Error Code: TooManyCertificates; Request ID: xxx

我可以手动添加 SSL 证书,但在每次部署时都会创建一个新环境(以及一个应用程序负载均衡器),因此我的配置会丢失。

您找到解决此问题的方法了吗?或解决方法?

【问题讨论】:

AWS 负载均衡器不支持多个 SSL 证书。你想完成什么? @JohnHanley 是的,现在支持它aws.amazon.com/blogs/aws/new-application-load-balancer-sni 谢谢。我的立场是正确的。 【参考方案1】:

感谢 AWS 支持,这里有一个等待正式实施的解决方法:创建一个 ebextensions 配置文件,如下所示:

Resources:
    AddingSSLCert2:
        Type: "AWS::ElasticLoadBalancingV2::ListenerCertificate"
        Properties:
            ListenerArn:  "Ref" : "AWSEBV2LoadBalancerListener443" 
            Certificates:
                - CertificateArn: "your-arn"

【讨论】:

如果你得到名为 '...' 的堆栈中止操作。当前状态:'CREATE_FAILED' 原因:未能创建以下资源:[AddingSSLCert2] 确保证书与负载均衡器位于同一区域。作为故障排除提示,使用额外的 arn 作为唯一证书创建一个新环境,以获得更好的错误消息

以上是关于在 Application Load Balancer 上配置多个 SSL 证书的主要内容,如果未能解决你的问题,请参考以下文章

AWS Application Load Balancer 将所有标头转换为小写

Socket.io + Nginx + AWS Application Load Balancer 连接在建立之前关闭

AWS - ECS + Application Load Balancer的思考

AWS Application Load Balancer 向不健康的目标组/实例发送请求

如何将 Application Load Balancer 用于具有多个端口映射的 ECS 服务?

AWS Application Load Balancer HTTP到HTTPS与EC2实例