AWS CloudFormation を使用して、複数の AWS Certificate Manager の SSL および TLS 証明書を Application Load Balancer に関連付けたいと考えています。
簡単な説明
セキュアリスナー用のデフォルト SSL サーバーを追加するには、リソース AWS::ElasticLoadBalancingV2::Listener の [Certificates] (証明書) プロパティを使用します。このリソースは 1 つの証明書を提供します。証明書をさらに追加するには、AWS::ElasticLoadBalancingV2::ListenerCertificate を使用します。AWS::ElasticLoadBalancingV2::ListenerCertificate には、証明書のリストを受け入れる [Certificates] (証明書) パラメータが含まれています。
解決方法
次の CloudFormation テンプレートを使用して、1 つのデフォルト証明書を持つ Application Load Balancer リスナーを作成します。
HTTPlistener:
Type: 'AWS::ElasticLoadBalancingV2::Listener'
DependsOn: ApplicationLoadBalancer
Properties:
DefaultActions:
- Type: fixed-response
FixedResponseConfig:
ContentType: text/plain
MessageBody: Success
StatusCode: '200'
LoadBalancerArn: >-
arn:aws:elasticloadbalancing:<Region>:<AccountID>:loadbalancer/app/TestACMELB/1032d48308c9b37f
Port: '443'
Protocol: HTTPS
Certificates:
- CertificateArn: >-
arn:aws:acm:<Region>:<AccountID>:certificate/cffb8a69-0817-4e04-bfb1-dac7426d6b90
次の CloudFormation テンプレートを使用して、Application Load Balancer リスナーに複数の証明書を追加します。
AdditionalCertificates:
Type: 'AWS::ElasticLoadBalancingV2::ListenerCertificate'
DependsOn: HTTPlistener
Properties:
Certificates:
- CertificateArn: >-
arn:aws:acm:<Region>:<AccountID>:certificate/c71a3c29-e79d-40e6-8834-650fe0d54a3f
- CertificateArn: >-
arn:aws:acm:<Region>:<AccountID>:certificate/fff1c1ba-3d97-4735-b3d5-9c5269b75db3
ListenerArn:
Ref: HTTPlistener