CloudFront用の証明書をIAMにCLI でインポートする

11月 29, 2021AWS,CloudFront,IAM_Policy関連

概要

  • CloudFront用の証明書をIAM にAWS CLI を使ってインポートする手順です。証明書はACM(AWS Certificate Manager)で発行するのではなく、外部認証局から発行された証明書あるいは自己署名証明書(オレオレ証明書)を利用します。

 

CloudFront用の証明書をIAMにCLI インポートする

IAM に証明書をインポート

  • AWS CLI を使用します。なお、IAM はグローバルサービスのため、ACM へのインポートと異なり、対象のリージョンを意識する必要はありません。
  • 以下のコマンドを使用して、IAMに証明書をインポートします。証明書ファイルをカレントディレクトリに配置して、コマンドを実行します。
  • path にはCloudFrontのディストリビューション名を付加します。(/cloudfront/[ディストリビューションID]/ の書式にて指定)

$ aws iam upload-server-certificate –certificate-body file://[サーバー証明書] –certificate-chain file://[中間証明書] –private-key file://[秘密鍵] –server-certificate-name [証明書の名前] –path /cloudfront/E1234567890123/

  • 次に、現在IAMにインポートされている証明書を確認します。

$ aws iam list-server-certificates

 

  • 以下、コマンドのサンプルです。
$ aws iam list-server-certificates
{
    "ServerCertificateMetadataList": []
}
$ aws iam upload-server-certificate --certificate-body file://niikawa2.example.com.pem --certificate-chain file://niikawa-test-cacert.pem --private-key file://niikawa2.example.com.key --server-certificate-name niikawa-cloudfront-cert-202111 --path /cloudfront/E1234567890123/
{
    "ServerCertificateMetadata": {
        "Path": "/cloudfront/E1234567890123/",
        "ServerCertificateName": "niikawa-cloudfront-cert-202111",
        "ServerCertificateId": "ABCDEFGHIJKLMNOPQRSTU",
        "Arn": "arn:aws:iam::123456789012:server-certificate/cloudfront/E1234567890123/niikawa-cloudfront-cert-202111",
        "UploadDate": "2021-11-25T14:39:47Z",
        "Expiration": "2022-01-24T14:29:41Z"
    }
}
$ aws iam list-server-certificates
{
    "ServerCertificateMetadataList": [
        {
            "Path": "/cloudfront/E1234567890123/",
            "ServerCertificateName": "niikawa-cloudfront-cert-202111",
            "ServerCertificateId": "ABCDEFGHIJKLMNOPQRSTU",
            "Arn": "arn:aws:iam::123456789012:server-certificate/cloudfront/E1234567890123/niikawa-cloudfront-cert-202111",
            "UploadDate": "2021-11-25T14:39:47Z",
            "Expiration": "2022-01-24T14:29:41Z"
        }
    ]
}

 

CloudFront に証明書を割り当てる

  • CloudFront のコンソール画面を開きます。
  • ディストリビューションの設定にて、「編集」をクリックします。
  • 「カスタム SSL 証明書」にて、インポートした証明書に変更します。「変更を保存」をクリックします。

 

  • ディストリビューションの最終更新日が「デプロイ」状態から変更日時に表示が更新されたことを確認します。

 → 

 

証明書の動作確認

  • opensslコマンドを実行して、証明書のシリアル番号(Serial Number)および有効期限(ValidityのNot Before,After)が更新版の証明書に置き換わっていることを確認する。
  • 自己署名証明書(オレオレ証明書)の場合は、ルート証明書も指定する。

openssl s_client -connect <FQDN>:443 -status -CAfile <ルート証明書> -servername <FQDN> | openssl x509 -text -noout

 

  • opensslコマンドによるSSL証明書の確認方法の詳細は、こちらを参照。

 

 

参考資料