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 3 years have passed since last update.

dockerコンテナとして起動しているWEBサーバーのLet's EncriptのSSL証明書を更新する

Last updated at Posted at 2021-02-12

はじめに

以前、下記URLの記事を書いてほぼ無料でhttpsで接続できるWEBサーバーを起動してから3か月が経過した。
SSL証明書にはLet's Encriptというサービスを使用しており、これは無料で使える利点がある反面、3か月で証明書の期限が切れるので3か月ごとに更新作業を行わなくてはならない。
そのため、今回はその更新作業手順を掲載する。
なおWEBサイトのダウンタイムは発生しない。

手順概要

おおまかな手順は以下の3点となる。

  1. 更新前のSSL証明書の期限を確認
  2. WEBサーバーに80番ポートでアクセスできるようにする
  3. WEBサーバーが起動しているdockerコンテナに入る
  4. SSL証明書更新コマンドを実行する
  5. 更新後のSSL証明書の期限を確認

1. 更新前のSSL証明書の期限を確認

以下の通り、2021/02/18が期限となっているのを確認
image.png

2. WEBサーバーに80番ポートでアクセスできるようにする

SSL証明書の更新時に80番ポートにアクセスに来るので80番ポートを空けておく必要がある。
私の環境ではWEBサーバーはAWSのEC2で稼働しているので、AWSの画面を操作して80番ポートを開放する。

EC2の画面でセキュリティグループを押下する。
image.png

インバウンドルールにHTTPが存在しているか確認する。存在しなければ「インバウンドルールを編集」を押下して追加する。
image.png
image.png

3. WEBサーバーが起動しているdockerコンテナに入る

docker nameを確認

docker ps -a
CONTAINER ID        IMAGE                         COMMAND                  CREATED             STATUS              PORTS                                      NAMES
495abedbe13e        reverse-ploxy_reverse-proxy   "entrypoint.sh wait-…"   2 months ago        Up 2 months         0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   reverse-proxy

docker nameを指定してbashでログインする

docker exec -it reverse-proxy bash
root@495abedbe13e:/#

4. SSL証明書更新コマンドを実行する

下記コマンドを実行する

certbot-auto renew

実行結果

root@495abedbe13e:/# certbot-auto renew
Upgrading certbot-auto 1.9.0 to 1.12.0...
Replacing certbot-auto...
Your system is not supported by certbot-auto anymore.
certbot-auto and its Certbot installation will no longer receive updates.
You will not receive any bug fixes including those fixing server compatibility
or security problems.
Please visit https://certbot.eff.org/ to check for other alternatives.
Saving debug log to /var/log/letsencrypt/letsencrypt.log

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/y-do.tk.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cert is due for renewal, auto-renewing...
Plugins selected: Authenticator nginx, Installer nginx
Renewing an existing certificate
Performing the following challenges:
http-01 challenge for y-do.tk
Waiting for verification...
Cleaning up challenges

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
new certificate deployed with reload of nginx server; fullchain is
/etc/letsencrypt/live/y-do.tk/fullchain.pem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Congratulations, all renewals succeeded. The following certs have been renewed:
  /etc/letsencrypt/live/y-do.tk/fullchain.pem (success)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
root@495abedbe13e:/#

5. 更新後のSSL証明書の期限を確認

image.png

まとめ

簡単な作業だけでSSL証明書を更新することが出来た。
しかし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?