SSL 証明書を AWS Identity and Access Management (IAM) へアップロードし、インポートするにはどうすればよいですか?

最終更新日: 2019 年 7 月 8 日

SSL 証明書を AWS Identity and Access Management (IAM) へアップロードし、インポートするにはどうすればよいですか?

簡単な説明

SSL 証明書を AWS Certificate Manager (ACM) にアップロードすることをお勧めします。ACM または関連する AWS リソースで現在サポートされていない証明書アルゴリズムとキーサイズを使用している場合は、AWS Command Line Interface (AWS CLI) を使用して SSL 証明書を IAM にアップロードすることもできます。

SSL 証明書を IAM へインポートする前に:

  • 証明書はアップロード時点で有効でなければなりません。証明書の有効期間より前またはそれが切れた後に証明書をアップロードすることはできません。
  • 証明書、プライベートキー、および証明書チェーンはすべて PEM エンコードされている必要があります。詳細については、サーバー証明書の使用セクションの「例示的な PEM エンコードされた証明書チェーン」を参照してください。

証明書が以上の基準を満たしていることを確認したら、証明書チェーンの順序が正しいことを確認した後、証明書をアップロードします。

解決方法

証明書チェーンの順序を確認

証明書チェーンは、認証機関 (CA) が作成した証明書から始まり、CA のルート証明書で終わる必要があります。

注: この順序が間違っていると、次のようなエラーメッセージが表示される場合があります。"An error occurred (MalformedCertificate) when calling the UploadServerCertificate operation: Unable to validate certificate chain.The certificate chain must start with the immediate signing certificate, followed by any intermediaries in order.The index within the chain of the invalid certificate is: -1" (UploadServerCertificate 操作を呼び出している最中にエラーが発生しました (MalformedCertificate)。証明書チェーンを有効化できません。証明書チェーンは直接のデジタル署名用証明書から始まり、その後に中間証明書が続きます。無効な証明書チェーン内のインデックスは -1 です)。

PEM エンコードされた証明書チェーンは、次のように、「-----BEGIN CERTIFICATE-----」で始まり、「-----END CERTIFICATE-----」で終わる必要があります。  

-----BEGIN CERTIFICATE-----
Base64-encoded Intermediate certificate 2
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
Base64-encoded Intermediate certificate 1
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
Optional: Base64-encoded Root certificate
-----END CERTIFICATE-----

: 証明書の先頭と末尾にスペースが入らないように注意してください。

証明書をアップロード

以下のコマンドを実行して証明書をアップロードします。  

$ aws iam upload-server-certificate --server-certificate-name ExampleCertificate --certificate-body file://Certificate.pem --certificate-chain file://CertificateChain.pem --private-key file://PrivateKey.pem

: ファイル名と ExampleCertificate を、アップロードしたファイルと証明書の名前にレプリケートします。詳細については、「upload-server-certificate」を参照してください。

証明書をアップロードすると、コマンドが、アップロードした証明書のメタデータを返します。このメタデータには、証明書の Amazon リソースネーム (ARN)、フレンドリ名、識別子 (ID)、有効期限が含まれています。アップロードした証明書を表示するには、次のコマンドを実行します。

aws iam list-server-certificates

注意: Amazon CloudFront で使用するサーバー証明書をアップロードする場合は、--path を使ってパスを指定します。パスは /cloudfront から始まり、末尾は必ず次の例のようにスラッシュで終わります。/cloudfront/test/。詳細については、CloudFront ディストリビューションにカスタム SSL 証明書を使用できないのはなぜですか? を参照してください。