Skip to content

WSL2のUbuntuとNginxのメンテナンスメモ

はじめに

これは自分用のメモです。

たまにやる最新化

WSL2本体を最新化する

たまに実行する。最新なら問題なし。

なお、Docker Desktop on Windowsが死んだ。WSL2を更新した場合はDocker側の動作を確認し、異常があればWindowsごと再起動する。

PS> wsl --update
更新プログラムを確認しています
Linux  Windows サブシステムの最新バージョンは既にインストールされています

Ubuntuバージョン変更

現在はUbuntu 20.04なので、メジャーバージョンアップは基本的にはやらない。当面はUbuntu 22.04のままにする。

更新が必要な場合はこの記事を参考にして、新たに手順を残す予定。

Ubuntuのパッケージの最新化

たまにsudo apt update && sudo apt upgrade -yを実行して、パッケージを最新化する。

結果が0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.なら全て最新の状態である。

$ sudo apt update && sudo apt upgrade -y
Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease
Get:2 http://security.ubuntu.com/ubuntu jammy-security InRelease [129 kB]
Hit:3 http://nginx.org/packages/ubuntu jammy InRelease
Get:4 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [128 kB]
Get:5 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [127 kB]
Fetched 384 kB in 2s (181 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

パッケージを更新した場合

Nginxが正常稼働していることを確認する。

$ sudo systemctl reload nginx
$ sudo systemctl status nginx
● nginx.service - nginx - high performance web server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2026-08-05 21:39:33 JST; 18h ago

不要な依存パッケージを削除

使用されなくなった依存パッケージを、設定ファイルごと削除する。

$ sudo apt autoremove --purge
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

証明書の自動更新の確認

証明書を確認する

証明書の有効期限を確認する。この場合は2026-10-10まで有効だ。

$ sudo certbot certificates
Saving debug log to /var/log/letsencrypt/letsencrypt.log

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Found the following certs:
  Certificate Name: dezikomoe.ddns.net
    Serial Number: 5b2ea8aa35dc9d21cf8711acf3590b64691
    Key Type: RSA
    Domains: dezikomoe.ddns.net
    Expiry Date: 2026-10-10 11:21:08+00:00 (VALID: 67 days)
    Certificate Path: /etc/letsencrypt/live/dezikomoe.ddns.net/fullchain.pem
    Private Key Path: /etc/letsencrypt/live/dezikomoe.ddns.net/privkey.pem
  Certificate Name: dezikomoe.mydns.jp
    Serial Number: 5f2338c744a56c7ff4fd51cf6ffed2f3c41
    Key Type: RSA
    Domains: dezikomoe.mydns.jp
    Expiry Date: 2026-10-10 11:23:07+00:00 (VALID: 67 days)
    Certificate Path: /etc/letsencrypt/live/dezikomoe.mydns.jp/fullchain.pem
    Private Key Path: /etc/letsencrypt/live/dezikomoe.mydns.jp/privkey.pem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

証明書の更新検証

sudo certbot renew --dry-runの結果がsuccessであることを確認する。

$ sudo certbot renew --dry-run
Saving debug log to /var/log/letsencrypt/letsencrypt.log

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/dezikomoe.ddns.net.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Simulating renewal of an existing certificate for dezikomoe.ddns.net

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/dezikomoe.mydns.jp.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Simulating renewal of an existing certificate for dezikomoe.mydns.jp

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations, all simulated renewals succeeded:
  /etc/letsencrypt/live/dezikomoe.ddns.net/fullchain.pem (success)
  /etc/letsencrypt/live/dezikomoe.mydns.jp/fullchain.pem (success)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

自動更新の設定確認

期限切れの30日前に更新される。なお、自動更新された後はsudo systemctl reload nginxが必要なので注意。

$ sudo systemctl status certbot.timer
● certbot.timer - Run certbot twice daily
     Loaded: loaded (/lib/systemd/system/certbot.timer; enabled; vendor preset: enabled)
     Active: active (waiting) since Tue 2026-08-04 00:24:35 JST; 19min ago
    Trigger: Tue 2026-08-04 14:58:49 JST; 14h left
   Triggers:  certbot.service

Aug 04 00:24:35 rio2 systemd[1]: Started Run certbot twice daily.