サーバ移行の影響か、証明書の更新でエラーが発生するようになったので、下記サイトを参考に再インストールしてみました。
Certbot Instructions
Tagline
事前確認
- sudo特権が使えるSSH環境はあるか ⇒既にある
- DNSプロバイダ(私の場合はさくらインターネット)がLet’s Encryptに対応しているか
⇒ さくらインターネットサイトで調べると対応スクリプトがあったのでたぶんイケると判断
ただそのスクリプトを適用しようとするとOSの再インストールが必要なので、スクリプトは参考のみで利用しない
snapdをインストール
Rocky Linuxのsnapパッケージは Enterprise Linux用の追加パッケージ (EPEL)リポジトリにあるので、次のコマンドを使用してRocky Linuxシステムに追加
$ sudo dnf install epel-release
$ sudo dnf upgrade
EPELリポジトリを追加したら、単にインストール
$ sudo dnf install snapd
インストールすると 次のコマンドで再起動時も自動で立ち上がるようにします
$ sudo systemctl enable --now snapd.socket
シンボリックリンクを作成します
$ sudo ln -s /var/lib/snapd/snap /snap
certbot-autoおよびCertbot OSパッケージを削除する
私の場合は、dnfでCettbotをインストールしていましたので、次のコマンドでアンインストールします。
$ sudo dnf remove certbot
Ubuntu等Debian系であれば、sudo apt-get remove certbot
CentOS7等以前のRH系であれば、sudo yum remove certbot
でいけるかと
Certbot再インストール
下記コマンドでインストール。dnfではなく、snapでインストールすることに注意
$ sudo snap install --classic certbot
Certbotコマンドを有効化
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
私はリンク先を間違えてしまったので、以下コマンドで修正。間違えなければ以下コマンドは不要
$ sudo ln -nfs /snap/bin/certbot /usr/bin/certbot
プラグインの封じ込め?レベルの確認
$ sudo snap set certbot trust-plugin-with-root=ok
証明書を取得する
$ sudo certbot certonly --webroot -w /var/www/html -d $DOMAIN -m your@email.address
/var/www/html部分は、実際のWeb rootに置き換えてください。
$DOMAIN部分も、実際のドメイン名に置き換えてください。
メールアドレスも同様です。
証明書をnginxで使用する
$ sudo cp /etc/letsencrypt/live/$DOMAIN/fullchain.pem /etc/nginx/tsl/server.crt
$ sudo cp /etc/letsencrypt/live/$DOMAIN/privkey.pem /etc/nginx/tsl/server.key
$ sudo systemctl restart nginx
$DOMAIN部分、実際のドメイン名に置き換えてください。コピー先も実際のディレクトリを指定してください。
証明書の更新確認
sudo certbot renew --dry-run
Congratulations, all simulated renewals succeeded:
が出力されれば、成功です。あとは自動更新の設定ですが、眠いので寝ます。また次回。
2024/8/1追記:自動更新の設定はsnap版になってから自動的に設定されるようです。以下サイトが大変参考になりました。
Let’s EncryptによるSSLサーバー証明書の取得、自動更新設定(2021年3月版) | 稲葉サーバーデザイン
1. はじめに2019年1月に「Let's EncryptによるSSLサーバー証明書の取得、自動更新設定(2019年1月版)」という記事を書きました。最近、証明書を取得、更新するためのcertbotコマンドの推奨インストール方法が変わりまし...
コメント