なにやらあやしいメールが来た
GCPでwebサイトを公開してから2ヶ月間くらいが経過して、Let's Encryptから「Let's Encrypt certificate expiration notice for domain "napspans.space"」ってメールが来た。
要はサイトの証明書の期限が切れるよーってことだと思う。
ということで証明書の更新のやり方を備忘録として残して置こうかなって思ったり。Let's Encryptで発行した人は参考にしてみてね。自動更新については後半で記載してるよ。
証明書の更新方法
サーバーの停止
まずはお使いのサーバーを停止させる。
Unix系OSでnginxを使ってる場合
$ sudo service nginx stop
証明書の更新
Let's EncryptでRenewする
$ sudo letsencrypt renew
これで更新完了!
と思ったんだけど、、
テデーン
nginx「そんなコマンドしらねーよー :D」
そういえばサイト立てたときにcertbotインストールしないでスクリプト実行しただけっだったっぽい:D
historyとかコマンドでcertbotの居場所突き止めてそのフォルダを開きましょう。
$ cd /usr/local/certbot ←自分の場合
ここで一応Letsencrypt-autoがいるかの確認
居たら
$ ./certbot-auto renew
successが出ればサーバーを起動してあげましょう。
自分のページに行ってブラウザの証明書を確認すると3ヶ月くらい伸びてると思います。
この流れで自動更新の設定をしていく。
web証明書を自動更新したい
気が付かない間に鯖の証明書が切れてたらしい。
そういえば前回上げた記事から更新してなかったな。。
3ヶ月おきに毎回ポチポチ更新するのは煩わしいので今回はshell scriptを使って自動更新に挑戦してみよう。って言う備忘録
(備忘録って言っても一回やれば今後は多分必要無くなるけどね。)
2ステップで自動更新
スクリプトを組む
上記で更新したときの鯖のターミナルに打ち込んだコマンドをそのままスクリプトにする。
#---Let's_Encrypt_Auto_renew.sh--- ←名前は何でもいいよ
#!/bin/sh
sudo service nginx stop
/usr/local/certbot/certbot-auto renew
sudo service nginx start
※windowsで書いてから鯖に持っていくと改行関連で怒られるから注意
できたシェルスクリプトファイルを鯖の適当に作ったスクリプト集フォルダにブチ込んで実行してみる
実行してエラーが出なければOK
crontabで定期実行
crontabとはLinux定期実行機能。作成したスクリプトを定期的に実行して証明書更新をさせたいので以下のコマンドでcrontabの設定ファイルを呼び出す。
$ crontab -e
出てきたテキストファイルにshell script実行コマンドを打ち込もう。
0 6 5 * * bash /~スクリプトを/入れたフォルダ~/Let`s_Encrypt_AutoRenew.sh
ちなみにこのコードは毎月5日の6:00に実行って命令
自分なりにアレンジできるから下のツール使ってね
↓cron設定ツール↓
コマンドはbash以降を追加してね
これで自動更新してくれるはず!
8888
何かあったらツイッタにリプでもどうぞ。