0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Django Webアプリケーション AWSデプロイ EC2 SSL証明書更新自動化

Last updated at Posted at 2023-07-01

『動かして学ぶ! Python Django開発入門(第1版)』で学ぶ際、
SSL化で用いるcertbot-autoが使えなくなっている。
これでは本書の意図通り、自動更新の設定が出来ない。

そして、90日間が有効期限となっているSSL証明書を手動で更新しなければならない。
※次のコマンド1行をEC2上で実行。(Windowsの場合PuTTyにて)

sudo certbot --nginx

参考記事:【Nginx】Let’sEncryptからのSSL証明書がcertbot-autoで取得できない際の対処

これを本来の目論見通り、自動更新できるようにする。
AWSで使われているOSはLinux。
Linuxに、cronという定期的なプログラムの自動実行用の常駐プログラムが入っている。

cronを設定する為に、次のコマンドを打つ。(cronへのコマンドの登録は下記の通行う。)

crontab -e

そうすると、vimエディターのような画面になるので、キーボードで'i'のボタンを押して「挿入モード」にして、次のように記載し、'Esc'ボタンを押して、:wqを押して、保存してエディターから退出。

30 07 25 */2 * echo 2 | sudo /usr/bin/certbot --nginx -d janken-time.com

この登録したコマンドは、
「(3か月に対して余裕を持って)2ヶ月おきに、日付が25日の日、朝7時30分に右側に記述したコマンドを実行してください」
という意味合い。

オリジナルのSSL証明書更新用のコマンドは、

sudo certbot --nginx

これを、

echo 2 | sudo /usr/bin/certbot --nginx -d janken-time.com

にしたのは、例に倣ってcertbotをフルパスにした上で、
次の画像の黄色枠のように、
PuTTY AWS SSL化更新.jpg

「登録されている何番目のURLのものを更新しますか?」
と聞かれるので、応答で「1:janken-time.com」を自動応答出来るようにし、
(-dの後に、SSL証明書を適用するWebアプリケーションのURLを引数に設定すると良いそうです。chatGPTが教えてくれました。)
また、次の質問、

What would you like to do?


1: Attempt to reinstall this existing certificate
2: Renew & replace the certificate (may be subject to CA rate limits)


で、「更新」の意味の「2」を自動応答出来るようにする為。
(SSL証明書の有効期限が切れていないときには、この2つ目の引数も必要になる。)

echo 2 | sudo /usr/bin/certbot --nginx -d janken-time.com

このコマンドの有効性は次の画像のように実際に実行してみて確認できている。
EC2_SSL_reissue_PuTTY_AWS_20230401_確認.jpg

3ヵ月後、
自動更新されていることを確認済!!
以上!!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?