メインコンテンツまでスキップ

Ubuntuでドメイン証明書を取得する準備

※1.Certbotでのドメイン取得には実行できる回数制限(時間単位、週単位)があります
※2.時間がない、不安な場合等はサブドメイン,テストドメインなどでテストしてください。

更新を念のためかけておきます

sudo apt -y update
sudo apt -y upgrade

ポートを開放する(必要がある場合)

sudo ufw allow 80
sudo ufw allow 443
sudo ufw reload

Certbotをインストールする

sudo apt -y install certbot

証明書を取得する

sudo certbot certonly --standalone -d momijiina.com

証明書を削除する

証明書が不要になった場合に使ってください。

証明書一覧を取得する

sudo certbot certificates

証明書を削除する(表示されたものを削除)

sudo certbot delete --cert-name momijiina.com

証明を自動更新する

rootでやる場合

sudo crontab -u root -e

www-dataでやる場合(www-dataではなく今はnginxかも?)

sudo crontab -u www-data -e

毎月1日の午前3時に更新をかける設定です

00 03 01 * * certbot renew

nginx,fpm等もリロードが必要な場合があります(まとめるとこんな感じ)。 証明書が更新された場合のみリロードを実行します

00 03 01 * * certbot renew --deploy-hook "systemctl reload nginx && systemctl reload php8.3-fpm.service"

証明書取得モードを変更する

これはNginx環境などでポート80を常に使われている場合に必要です
cpなりでバックアップを取っておくことを推奨 証明書更新モードの設定

sudo vi /etc/letsencrypt/renewal/momijiina.com.conf

以下のように編集する

f4bef123da5678dc52f173c01af1ga7は人それぞれで最初から値があります。
今回は適当に乱数で作成しています。

# renew_before_expiry = 30 days
version = 1.21.0
archive_dir = /etc/letsencrypt/archive/momijiina.com
cert = /etc/letsencrypt/live/momijiina.com/cert.pem
privkey = /etc/letsencrypt/live/momijiina.com/privkey.pem
chain = /etc/letsencrypt/live/momijiina.com/chain.pem
fullchain = /etc/letsencrypt/live/momijiina.com/fullchain.pem

# Options used in the renewal process
#[renewalparams]
#account = f4bef123da5678dc52f173c01af1ga7
#authenticator = standalone
#server = https://acme-v02.api.letsencrypt.org/directory

[renewalparams]
account = f4bef123da5678dc52f173c01af1ga7
authenticator = webroot
server = https://acme-v02.api.letsencrypt.org/directory
webroot_path=/var/www/html
[[weboroot_map]]
momijiina.com = /var/www/html

nginxには以下を追加する

ポート80からSSLに自動転送される場合は443側に必要

    location ^~ /.well-known/acme-challenge {
root /var/www/html;
}

location = /.well-known/acme-challenge/ {
return 404;
}

更新可能か試す

sudo certbot renew --dry-run

以上が更新方法です。