AWS
aws-cli
APIGateway
acm

AWS Certificate Manager に コマンドで 証明書をインポートする

More than 1 year has passed since last update.

AWS Certificate Manager(ACM) に、COMODOなどで発行した証明書をコマンドラインでインポートする手順を紹介します。

ELBや AWS API Gatewayなどに独自ドメインを設定してhttpsでアクセスするようにしている場合、SSL証明書の設定が必要になります。

ELBは証明書の更新が楽でダウンタイムもないのですが、API Gatewayの場合手順によってはダウンタイムが発生します。

API Gatewayでは、直接証明書を設定することもできるのですが、この場合は証明書の更新のために 独自ドメイン設定を一度削除して、設定し直す 必要があるようです。

当然、削除してから再設定までの間は、ドメインが利用できずダウンタイムが発生してしまいますが、ACMを使えば無停止での証明書の更新ができるので、この手順をまとめます。


前提条件


  • 最新版のAWS CLI がインストール済み

  • jqがインストール済み

  • 実行環境が *nix(含むMAC OSX)

  • 証明書ファイルはnopass設定で用意済み


    • 秘密鍵

    • 公開鍵

    • 中間証明書




手順


1. ACM に証明書をインポートする

aws acm import-certificate --certificate file://{PATH_TO_CERTIFICATE} --private-key file://file://{PATH_TO_PRIVATEKEY} --certificate-chain file://file://{PATH_TO_CERTIFICATE_CHAIN}

※ もしリージョン指定が必要なら --region {AWS_REGION} を追加する


結果

一応マネジメントコンソールの画面です

範囲を選択_020.png


2. インポートした証明書にNameタグを追加する

インポートしただけだとNameタグが空なので、設定しておく


登録済みの証明書一覧

証明書の一覧を表示して、タグを追加したい証明書のarnをコピーします

aws acm list-certificates 


タグを追加

xargs aws acm add-tags-to-certificate --tags Key=Name,Value={NAME} --certificate-arn #{CERTIFICATE_ARN}


結果

一応マネジメントコンソールの画面です

範囲を選択_021.png


参考

参考にしたWebサイトや技術書などを列挙する


次にやること

あとは、ELBなりApi Gatewayなりで、インポートした証明書を指定して設定するだけです。

注意点としては、 Api Gatewayを利用する場合、証明書をインポートするリージョンは us-east-1 でなくてはいけません。

私は、最初 ap-northeast-1 に上げて、作業をやり直しました。(画像のリージョンがTokyoになっているのはそのため)

必要に応じてコマンドに --region us-east-1 を追加して実行してください。