概要

  • ALB用の証明書をIAM にAWS CLI を使ってインポートする手順です。証明書はACM(AWS Certificate Manager)で発行するのではなく、外部認証局から発行された証明書あるいは自己署名証明書(オレオレ証明書)を利用します。
  • なお、ALB用の証明書をIAM にインポートするオペレーションは、CLI ではなく、AWSコンソールから行うことも可能です。AWSコンソールを使って、IAMにインポートする手順は下記の記事を参照ください。
概要はじめに今回は、ELBのHTTPS接続のために使用しているサーバー証明書の有効期限切れ対応です。ここで説明するケースは、ACMで発行した証明書ではなく、IAMにインポートしている証明書が間もなく期限切れとなる場合を想定して記事を書いております。あらかじめ、...

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

IAM に証明書をインポート

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

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

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

$ aws iam list-server-certificates

  • 以下、コマンドのサンプルです。
$ aws iam list-server-certificates
{
    "ServerCertificateMetadataList": []
}
$ aws iam upload-server-certificate --certificate-body file://niikawa1.example.com.pem --certificate-chain file://niikawa-test-cacert.pem --private-key file://niikawa1.example.com.key --server-certificate-name niikawa-alb-cert-20211128
{
    "ServerCertificateMetadata": {
        "Path": "/",
        "ServerCertificateName": "niikawa-alb-cert-20211128",
        "ServerCertificateId": "ABCDEFGHIJKLMNOPQRSTU",
        "Arn": "arn:aws:iam::123456789012:server-certificate/niikawa-alb-cert-20211128",
        "UploadDate": "2021-11-28T12:44:44Z",
        "Expiration": "2022-01-22T06:26:22Z"
    }
}
$ aws iam list-server-certificates
{
    "ServerCertificateMetadataList": [
        {
            "Path": "/",
            "ServerCertificateName": "niikawa-alb-cert-20211128",
            "ServerCertificateId": "ABCDEFGHIJKLMNOPQRSTU",
            "Arn": "arn:aws:iam::123456789012:server-certificate/niikawa-alb-cert-20211128",
            "UploadDate": "2021-11-28T12:44:44Z",
            "Expiration": "2022-01-22T06:26:22Z"
        }
    ]
}

ALB に証明書を割り当てる

  • EC2 のコンソール画面を開き、対象リージョンを選択します。
  • 「ロードバランサー」をクリックし、ALB を選択します。
  • 「証明書の表示/編集」をクリックします。

  • 「+」のアイコンをクリックします。

  • 先ほどインポートした証明書をALB に割り当てます。

  • 「追加」をクリックし、証明書が正常に追加されたことを確認します。

  • 次に、リスナーの表示に戻り、リスナーを選択します。「編集」をクリックします。
  • 「デフォルトのSSL証明書」を先ほどインポートした証明書に変更します。「変更内容の保存」をクリックします。

  • デフォルトのSSL証明書が新しくインポートした証明書に切り替わりました。

証明書の動作確認

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

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

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

参考資料

他の AWS サービスで使用するために、IAM でサードパーティーの X.509 SSL/TLS 証明書 (サーバー証明書) をアップロードおよび管理します。
CSR(証明書署名要求)の作り方概要証明書とは先ず証明書について、簡単にまとめます。公開鍵暗号方式では、公開鍵の成りすましを防止するために公開鍵証明書が使われます。この公開鍵証明書は、公開鍵と、その所有者(その他に有効期間、発行者、署名アルゴリズムな...
概要はじめに今回は、ELBのHTTPS接続のために使用しているサーバー証明書の有効期限切れ対応です。ここで説明するケースは、ACMで発行した証明書ではなく、IAMにインポートしている証明書が間もなく期限切れとなる場合を想定して記事を書いております。あらかじめ、...

元記事はこちら

https://oji-cloud.net/2021/11/29/post-6712/
著者:
新川貴章


アイレットなら、AWS で稼働するサーバーを対象とした監視・運用・保守における煩わしい作業をすべて一括して対応し、経験豊富なプロフェッショナルが最適なシステム環境を実現いたします。AWS プレミアコンサルティングパートナーであるアイレットに、ぜひお任せください。

AWS 運用・保守サービスページ:
https://cloudpack.jp/service/aws/maintenance.html

その他のサービスについてのお問合せ、お見積り依頼は下記フォームよりお気軽にご相談ください。
https://cloudpack.jp/contact/form/