- 1. 概要
- 2. 弱った! インポートした証明書が”使用不可”となる
- 3. ELB用の証明書をインポートする時の条件
— 3.1. ACMに証明書をインポートする時の条件
— 3.2. ELB用の証明書をACMにインポートする時の条件
— 3.3. 解決策 - 4. 参考資料
概要
- 今日は、ロードバランサーに使用するためのSSL証明書をACMにインポートしたところ、証明書が”使用不可”と表示されてしまった事例を紹介します。
- ロードバランサーは、ALBとNLBで使用できるSSL証明書の条件が少し異なります。本記事に注意事項と条件をまとめておりますので、参照ください。
弱った! インポートした証明書が”使用不可”となる
- ELB をHTTPSプロトコルで使用するために外部ベンダより取得したSSL証明書をインポートします。しかし、ELB 作成時の「デフォルトの証明書の選択」において、「証明書を ACM にアップロードする (推奨)」を選択し、SSL証明書のインポートを試みたところ、下記のエラーメッセージが表示されました。
- リスナーの更新が失敗しました。 インポートされた証明書の設定に互換性がないため、リスナーの使用可能な証明書のリストには表示されません。別の証明書を選択またはアップロードして、やり直してください。
- 次に、ACM(AWS Certificate Manager)のコンソールからインポートを試みたところ、SSL証明書はインポートできましたが、「更新資格」が”使用不可”となり、正しい状態ではないようです。
ELB用の証明書をインポートする時の条件
ACMに証明書をインポートする時の条件
- 実はELB用のSSL/TLS証明書をインポートする時はいくつかの条件があり、今回その条件を満たしておりませんでした。先ず、ACMに証明書をインポートする時の条件を整理します。
- ACM にSSL/TLS 証明書をインポートするには、証明書とそのプライベートキーを提供する必要があります。また、証明書が CA によって署名されている場合は、中間証明書チェーンも含める必要があります。
- ACMがサポートするアルゴリズムは、下記となります。
- 1024 ビット RSA (RSA_1024)
- 2048 ビット RSA (RSA_2048)
- 4096 ビット RSA (RSA_4096)
- Elliptic Prime Curve 256 ビット (EC_prime256v1)
- Elliptic Prime Curve 384 ビット (EC_secp384r1)
- Elliptic Prime Curve 521 ビット (EC_secp521r1)
- 今回は、EC_prime256v1であったため、上記ACMにインポートするアルゴリズムの条件は満たしておりました。
ELB用の証明書をACMにインポートする時の条件
- 次に、前述の条件とは別に、ELBのHTTPSリスナーに使用する証明書をACMにインポートする時の条件があります。ACM では、4096 ビット RSA および EC のキーアルゴリズムを使用して証明書をインポートできますが、これらの証明書はロードバランサーに関連付けることはできません。
- ELB用の証明書をACMにインポートする時は、下記のアルゴリズムのみサポートされます。
- 1024 ビット RSA (RSA_1024)
- 2048 ビット RSA (RSA_2048)
解決策
- 4096 ビット RSA および EC のキーアルゴリズムの証明書は、ACMではなく、IAMにインポートしてELBに使用する必要があります。
- また、2048 ビットより大きい RSA キーまたは EC キーを持つ証明書を Network Load Balancer にインストールすることはできません。
参考資料
- ACMに証明書をインポートする条件の詳細は、下記ドキュメントを参照ください。
- 以下は、ロードバランサーまたは CloudFront ディストリビューション用にインポートした証明書が見つからない時のナレッジです。
- 以下は、Application Load Balancer 用の HTTPS リスナーに証明書を設定する際のドキュメントです。
- 以下は、Network Load Balancer 用の HTTPS リスナーに証明書を設定する際のドキュメントです。
- その他、ACMやIAM に証明書をインポート、更新する際の手順や注意事項を下記にまとめております。