SSL 証明書を AWS Identity and Access Management (IAM) にアップロードしてインポートしたいです。
簡単な説明
SSL 証明書は、AWS Certificate Manager (ACM) にアップロードするのがベストプラクティスです。ACM または関連する AWS リソースで現在サポートされていない証明書アルゴリズムとキーサイズを使用している場合は、AWS コマンドラインインターフェイス (AWS CLI) を使用して SSL 証明書を IAM にアップロードすることもできます。
SSL 証明書を IAM にインポートする前の確認事項
- 証明書はアップロード時に有効である必要があります。有効期間が始まる前、または有効期限が切れた後の証明書はアップロードできません。
- 証明書、プライベートキー、証明書チェーンは PEM でエンコードする必要があります。詳細については、「サーバー証明書の操作」の「PEM でエンコードされた証明書チェーンの例」セクションを参照してください。
証明書が条件を満たしていることを確認したら、証明書チェーンが正しい順序になっていることを確認し、証明書をアップロードします。
解決策
証明書チェーンが正しい順序になっていることを確認する
注: AWS CLI コマンドの実行中にエラーが発生した場合は、最新バージョンの AWS CLI を使用していることを確認してください。
証明書チェーンは、お使いの認証機関 (CA) によって生成された証明書で始まり、その CA のルート証明書で終わる必要があります。
注: 証明書チェーンの順序が正しくない場合、次のエラーメッセージが表示されることがあります。 "UploadServerCertificate 操作の呼び出し時にエラーが発生しました (UploadServerCertificate)。 証明書チェーンを検証できません。証明書チェーンは即時署名証明書から始まり、その後に中間証明書が順番に続いたものである必要があります。無効な証明書のチェーン内のインデックス: -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-----
注: 証明書の先頭または末尾にスペースがなく、BEGIN ブロックと END ブロック以外のプレフィックスまたはサフィックスが含まれていないことを確認してください。
"MalformedCertificate: プライベートキーを解析できません" というエラーメッセージが発生しないようにするには、PEM エンコードされたキーで次の形式を使用する必要があります。
-----BEGIN RSA PRIVATE KEY-----
Base64-encoded private key
-----END RSA PRIVATE KEY-----
証明書をアップロードする
次に示すように AWS CLI コマンド upload-server-certificate を実行して証明書をアップロードします。
$ aws iam upload-server-certificate --server-certificate-name YourCertificate --certificate-body file://Certificate.pem --certificate-chain file://CertificateChain.pem --private-key file://PrivateKey.pem
注:
- ファイル名と YourCertificate は、実際のアップロードしたファイルと証明書の名前に置き換えます。
- API リクエストの証明書本文、証明書チェーン、秘密鍵パラメーターには、"file://" プレフィックスを指定する必要があります。指定しない場合、リクエストは失敗し、"MalformedCertificate: Unknown" エラーメッセージが表示されます。
証明書がアップロードされると、AWS コマンド upload-server-certificate は、証明書の Amazon リソースネーム (ARN)、フレンドリー名、識別子 (ID)、有効期限など、アップロードされた証明書のメタデータを返します。
アップロードされた証明書を表示するには、AWS CLI コマンド list-server-certificates を実行します。
aws iam list-server-certificates
注: Amazon CloudFront で使用するサーバー証明書をアップロードする場合は、--path を使用してパスを指定する必要があります。パスは /cloudfront で始まる必要があり、パスの末尾にはスラッシュが必要です (/cloudfront/test/ など)。詳細については、「CloudFront ディストリビューションにカスタム SSL 証明書を使用する際の問題をトラブルシューティングする方法を教えてください」を参照してください。
証明書を削除するには、次に示すように AWS CLI コマンド delete-server-certificate を実行します。
$ aws iam delete-server-certificate --server-certificate-name YourCertificate
関連情報
ACM と統合されたサービス
インポート用の証明書とキーの形式