🎉
AWS System ManagerにてEC2に証明書を更新・導入する
はじめに
こんにちは、山田です。
今回は、EC2インスタンスに配置されている、AWS System Managerを用いて証明書を更新・導入する方法について記載します。
よろしくお願いします。
構成図
今回は、ACMに登録してある証明書をCloudWatch
にて監視し、証明書の有効期限が10日
になったら、アラームを発行し、運用担当者に通知を飛ばします。
運用担当者は通知を受け取ったらSystem managerのRun Command
を実行し証明書を更新・導入するコマンドをEC2に実行させます。
※証明書は、ACMにて発行されているものとする。
Apacheインストール
Apacheをインストールします。
yum install httpd
SSLモジュールをインストールします。
yum install mod_ssl
Apacheを起動します。
systemctl start httpd
ブラウザでアクセスして、以下のように表示されればOKです。
CLoudWatchアラーム設定
CloudWatchを作成します。
メトリクスは、対象の証明書の「DaysToExpiry」を選択する。
証明書の有効期限が10日以下になったら、アラームが発行されるようにします。
トピックを選択して、CloudWatchアラームを作成します。
Run Command実行
運用担当者は通知を受け取ったら、System MAnagerのコンソール画面に移動し、Run Commnad
を選択する。
コマンドドキュメントは、「AWS-RunShellScript」を選択する。
コマンドパラメーターは、以下を入力する。
sudo su
aws scm renew-certificate --certificate-arn 証明書のARN
export PATH="$PATH:/root/.local/bin"
cd /etc/pki/tls/certs/
aws acm export-certificate \
--certificate-arn 証明書のARN \ --passphrase パスフレーズ \
| jq -r '"\(.Certificate)"' \
> /etc/pki/tls/certs/証明書の名前
aws acm export-certificate \
--certificate-arn 証明書のARN \ --passphrase パスフレーズ \
| jq -r '"\(.CertificateChain)"' \
> /etc/pki/tls/certs/ルート証明書の名前
cd /etc/pki/tls/private
aws acm export-certificate \
--certificate-arn 証明書のARN \ --passphrase パスフレーズ \
| jq -r '"\(.PrivateKey)"' \
> /etc/pki/tls/private/秘密鍵の名前
systemctl restart httpd
対象のEC2を選択し、コマンドを実行します。
動作確認
ブラウザでアクセスして、以下のように表示されればOKです。
Discussion