ACMにインポートした証明書が"使用不可"となった時

3月 29, 2020ACM,AWS,ELB,IAM_Policy関連

概要

  • 今日は、ロードバランサーに使用するための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 に証明書をインポート、更新する際の手順や注意事項を下記にまとめております。