Certbot
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
証明書を取得する
注意
ポート80が必須です。
nginx等で使われている場合は停止してください。
sudo certbot certonly --standalone -d momijiina.com
証明書を一覧を表示する
証明書一覧を取得する
sudo certbot certificates
証明書を削除する
証明書が不要になった場合に使ってください。
※証明書一覧を確認してください。
削除するドメインを指定してください。
sudo certbot delete --cert-name momijiina.com
証明を自動更新する
rootでcronを実行する
sudo crontab -u root -e
人によっては毎日更新を実行するようにするべきという人もいますので最適解は不明。
fpmの自動リロードは気を付けてください。
fpmの設定が甘いと503になる場合があります。
一応Cronの書式について
分 時 日 月 曜日 コマンドを入力
フィールド | 数値 |
---|---|
分 | 0~59 |
時 | 0~23 |
日 | 1~31 |
月 | 1~12 |
曜日 | 0~7(0と7は日曜、1は月曜) |
* * * * *
→ 毎分、毎時、毎日、毎月、毎曜日に実行
毎月1日の午前3時に更新をかける設定です
00 03 01 * * certbot renew --quiet
nginx,fpm等もリロードが必要な場合があります(まとめるとこんな感じ)。 証明書が更新された場合のみリロードを実行します
毎週月曜日の午前3時に更新
0 3 * * 1 certbot renew --quiet --deploy-hook "systemctl reload nginx && systemctl reload php8.3-fpm.service"
毎週日曜の場合: 0 3 * * 0
毎週金曜の場合: 0 3 * * 5
毎月1日の1時に更新
00 03 01 * * certbot renew --quiet --deploy-hook "systemctl reload nginx && systemctl reload php8.3-fpm.service"
証明書取得モードを変更する
これはNginx環境などでポート80を常に使われている場合に必要です
証明書更新モードの設定
sudo vi /etc/letsencrypt/renewal/momijiina.com.conf
以下のように編集する
/var/www/htmlはnginxと同じ公開できるWEBファイルがある場所等
# 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 = f4bef560da32591dc52f173c01af1ga7
#authenticator = standalone
#server = https://acme-v02.api.letsencrypt.org/directory
[renewalparams]
account = f4bef560da32591dc52f173c01af1ga7
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
以上が更新方法です。