AWS Elastic Beanstalk 環境の Application Load Balancer に SSL 証明書を追加したいと思っています。
解決策
Application Load Balancer は複数の SSL 証明書をサポートしていますが、Elastic Beanstalk の SSLCertificateArns オプションはリスナーごとに 1 つの証明書しか受け付けません。Application Load Balancer に SSL 証明書を追加するには、リソースベースの .ebextension を作成する必要があります。
2 つ目の SSL 証明書を Application Load Balancer に追加する
次の手順を実行します。
- ソースバンドルのルートディレクトリに .ebextensions フォルダを作成します。
- .ebextensions フォルダーに、次の例を参考に 2 つ目の SSL 証明書を.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 セクションで、リスナーに追加の証明書をアタッチする別のリソースを作成します。
- .ebextensions の更新をアプリケーションバンドルに適用します。
- アプリケーションを再デプロイします。
アプリケーションは既存の Application Load Balancer を置き換えずに更新します。
重要: 追加の証明書は Elastic Beanstalk コンソールには表示されません。証明書が Application Load Balancer に追加されたことを確認するには、次のセクションの手順を実行します。
SSL 証明書が Application Load Balancer リスナー 443 に追加されていることを確認します。
次の手順を実行します。
- Amazon Elastic Compute Cloud (Amazon EC2) コンソールを開きます。
- 次に、ナビゲーションペインから [ロードバランサー] を選択します。
- [リスナー] タブを選択します。
- リスナー 443 の場合は、[証明書の表示/編集] を選択します。