AWS CloudFormation を使用して、複数の AWS Certificate Manager (ACM) の SSL 証明書と TLS 証明書を Application Load Balancer に関連付けたいと思っています。
解決策
セキュアリスナー用のデフォルトの SSL サーバーまたは TLS サーバーを追加するには、AWS::ElasticLoadBalancingV2::Listener リソースの Certificates プロパティを使用します。このリソースでは 1 つの証明書を取得できます。証明書をさらに追加するには、AWS::ElasticLoadBalancingV2::ListenerCertificate を使用します。AWS::ElasticLoadBalancingV2::ListenerCertificate には、証明書のリストを受け入れる Certificates パラメータがあります。
1 つのデフォルト証明書を使用して Application Load Balancer リスナーを作成するには、次の CloudFormation テンプレートを使用します。
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
Application Load Balancer リスナーに複数の証明書を追加するには、次の CloudFormation テンプレートを使用します。
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
注: 上記のテンプレートで、Region はお使いの AWS リージョン、AccountID はお使いの AWS アカウントに置き換えます。また、LoadBalancerARN と CertificateARN の値は、Application Load Balancer と証明書の ARN に置き換えます。