嗨,我在为ELB侦听器设置multipme证书时遇到问题。 这是我的CF模板的片段:
DiscoveryListenerHTTPS:
Type: AWS::ElasticLoadBalancingV2::Listener
DependsOn:
- DiscoveryLoadBalancer
- DiscoveryLoadBalancerTargetGroup
Properties:
Certificates:
- CertificateArn: !Ref CertificateArn1
- CertificateArn: !Ref CertificateArn2
,响应为: 最多为 '1' 证书ARNS可以指定,但 '2' 中指定(服务:AmazonElasticLoadBalancingV2;状态码:400;错误代码:TooManyCertificates;请求ID:XXXXXXXXX)
答案 0 :(得分:5)
这对我有用,是一个使用443端口的侦听器的示例,该侦听器使用默认证书,然后使用包含至少一个证书并与先前创建的侦听器相关联的证书列表:
Listener443:
DependsOn:
- LoadBalancer
Type: AWS::ElasticLoadBalancingV2::Listener
Properties:
Certificates:
- CertificateArn: !Ref CertificateARN
LoadBalancerArn: !Ref LoadBalancer
DefaultActions:
- Type: fixed-response
FixedResponseConfig:
ContentType: text/plain
MessageBody: "Not Found"
StatusCode: 404
Port: 443
Protocol: HTTPS
CertificatesList:
Type: AWS::ElasticLoadBalancingV2::ListenerCertificate
Properties:
Certificates:
- CertificateArn: !Ref CertificateARN2
ListenerArn: !Ref Listener443
答案 1 :(得分:2)
有点笨拙;用于创建侦听器的CF模板仅设置默认证书。
您应该可以使用此对象向侦听器添加其他证书: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenercertificate.html
答案 2 :(得分:0)
来这里寻找相同的答案。发现答案/注释中没有明确列出答案,所以我要这样做。尽管可以为HTTPS侦听器指定多个SSL证书,但是不允许直接在CFN模板中的HTTPS侦听器资源上指定多个证书。您必须在模板中为另一个证书创建另一个资源,例如:
AdditionalListenerCertificates:
Type: AWS::ElasticLoadBalancingV2::ListenerCertificate
Properties:
Certificates:
- CertificateArn: !Join
- ":"
- - "arn:aws:acm"
- !Ref AWS::Region
- !Ref AWS::AccountId
- !Join ["/", ["certificate", "<you-certificate-id>"]]
ListenerArn: !Ref HTTPSListener