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 フォルダに、次の設定を参考に .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 を実際の証明書の 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-arn-3 を実際の証明書の ARN に置き換えます。
option_settings セクションは、ポート 443 に HTTPS リスナーを作成し、このリスナーに証明書をアタッチします。コンソールから 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 で [証明書の表示/編集] を選択します。