Ubuntuでドメイン証明書を取得する準備
※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
以上が更新方法です。