ナスです。

最近、ELB の証明書更新作業があったので、忘れないようにメモ記事書いておきます。本当にメモです。(なんせ年に 1 回しかしないので…

まずは証明書のアップロード

元ネタのドキュメントはこちら

他の AWS サービスで使用するため、IAM を使用してサードパーティの X.509 SSL/TLS 証明書 (サーバー証明書) をアップロードおよび管理します。

docs.aws.amazon.com

# 証明書のアップロード
$ aws iam upload-server-certificate --server-certificate-name a-domain_20181025 --certificate-body file://xxx --certificate-chain file://yyy --private-key file://zzz
{
    "ServerCertificateMetadata": {
        "ServerCertificateId": "*********************",
        "ServerCertificateName": "a-domain_20181025",
        "Expiration": "2018-10-25T07:04:08Z",
        "Path": "/",
        "Arn": "arn:aws:iam::111122223333:server-certificate/a-domain_20181025",
        "UploadDate": "2017-09-01T05:47:35.946Z"
    }
}

# アップロード済みの証明書一覧を確認する
$ aws iam list-server-certificates
{
    "ServerCertificateMetadataList": [
        {
            "ServerCertificateId": "*********************",
            "ServerCertificateName": "a-domain_20160923",
            "Expiration": "2017-09-24T07:04:08Z",
            "Path": "/",
            "Arn": "arn:aws:iam::111122223333:server-certificate/a-domain_20160923",
            "UploadDate": "2016-09-23T08:00:49Z"
        },
        {
            "ServerCertificateId": "*********************",
            "ServerCertificateName": "a-domain_20181025",
            "Expiration": "2018-10-25T07:04:08Z",
            "Path": "/",
            "Arn": "arn:aws:iam::111122223333:server-certificate/a-domain_20181025",
            "UploadDate": "2017-09-01T05:47:35Z"
        }
    ]
}

証明書の更新

元ネタのドキュメントはこちら

ロードバランサーにデプロイされた SSL サーバー証明書を更新します。

docs.aws.amazon.com

# 対象の ELB に適用されている証明書を確認する
$ aws elb describe-load-balancers --query 'LoadBalancerDescriptions[?LoadBalancerName==`elb-a-domain`].ListenerDescriptions[].Listener.SSLCertificateId'
[
    "arn:aws:iam::111122223333:server-certificate/a-domain_20160923"
]

# 適用する証明書を更新する
$ aws elb set-load-balancer-listener-ssl-certificate --load-balancer-name elb-a-domain --load-balancer-port 443 --ssl-certificate-id arn:aws:iam::111122223333:server-certificate/a-domain_20181025

# 対象の ELB に適用されている証明書を再確認する
$ aws elb describe-load-balancers --query 'LoadBalancerDescriptions[?LoadBalancerName==`elb-a-domain`].ListenerDescriptions[].Listener.SSLCertificateId'
[
    "arn:aws:iam::111122223333:server-certificate/a-domain_20181025"
]

元記事はこちら

ELB に適用している証明書の更新の流れ [cloudpack OSAKA blog]