やっと自動SSL証明書の申請とデプロイに切り替えられた、やったー!ついでにファイル置き場もhttps化したよ ホーム | yonoのファイル。というのも、ファイル置き場で動画やドキュメントをオンラインでプレビューできるようにしたかったからで、そうでなきゃ、わざわざ証明書を設定する気なんて起きなかったよ。
インストール
certbotのインストールについて、ネット上にはすごく面倒な手順がよくある。まずrpelやsnapdとかの依存関係を入れなきゃいけない方法だとかね。そういう小難しいのはやめて、python版がいちばんだよ。
インストールは次のコマンドだけで一発完了だ。
yum install certbot python3-certbot-nginx -y
nginxの設定ファイルを確認しておこう。
nginx -t
そうすると、/www/server/nginx/conf/ に関する内容が表示されるはずだ。これは宝塔パネル特有で、宝塔パネルのnginxはetcディレクトリ配下にないからだ。このディレクトリのパスは後で使うので、覚えておいてほしい。
実行してSSL証明書を申請する
インストールが終わって証明書を申請する前に、サーバーを再起動するのをおすすめする。あわせてバックアップも取っておこう。重要な設定を失わないようにね。
certbotは次のコマンドで実行する。ディレクトリの部分は、上で覚えたパスに置き換えてね。
certbot --nginx --nginx-server-root=/www/server/nginx/conf/
以下の画像と説明は Certbotで証明書を発行&自動デプロイ【宝塔パネル】-就叫大白白 からパクってきた。
- メールアドレスを入力する
- Yを入力して規約に同意する
- 広告メールの受信に同意するならY、拒否するならNを入力する
- 証明書を発行・デプロイするサイトの番号を選択し、半角カンマかスペースで区切る。すべて選択する場合は空欄のままでOK。下の図の例では17番と18番のサイトを選択している

image-20250106152446357
定期実行で自動再申請
パネル左側の計画タスクから新しいタスクを作成する。名前と実行周期は自由に決めてOK。スクリプトの内容は以下のとおり。
certbot renew --nginx --nginx-server-root=/www/server/nginx/conf/ --post-hook "systemctl reload nginx" --quiet
ちなみに、--non-interactive は非対話モードを意味し、スクリプト環境に適している。また、--expand はすべてのドメインを自動更新するためのオプションだ。

image-20250106153139114
試しに実行してみよう。数分待てば完了する。あとはタスクログにエラーがないか確認するだけだ。