Rocky Linux 9 にサーバー証明書 Let's Encrypt を導入する
さくらのVPS(Rocky Linux 9)で、Web サーバーが Apache の前提です。
最初に conf ファイルを作ります。
sudo vi /etc/httpd/conf.modules.d/letsencrypt.conf
内容は以下です。私は DocumentRoot が /var/www/html ですので、その上の階層に log フォルダを作って置きました。log フォルダは 777 にしておくと良いような気もいたします。
<VirtualHost *:80>
ServerName sakura.ne.jp
ServerAlias {あなたの情報}.vs.sakura.ne.jp
DocumentRoot /var/www/html
ErrorLog /var/www/log/error.log
CustomLog /var/www/log/requests.log combined
</VirtualHost>
conf.modules.d 配下に conf ファイルを作ると勝手に読み込んでくれます。httpd.conf に Include の設定があるか確認しておくと良いですね。
httpd.conf を確認します。
sudo vi /etc/httpd/conf/httpd.conf
以下の行がコメントアウトされずに存在していたらOKです。
Include conf.modules.d/*.conf
/var/www/log/ ディレクトリが存在するか確認します。
ls /var/www/log/
ディレクトリが存在しない場合、以下のコマンドでディレクトリを作成して、所有者・グループ、パーミッションを設定します。
sudo mkdir /var/www/log
sudo chown apache:apache /var/www/log
sudo chmod 755 /var/www/log
Apache の構文をチェックし、問題がなければ Apache を再起動して変更を適用します。
sudo apachectl configtest
sudo systemctl restart httpd
Certbot をインストールします。
sudo dnf install epel-release
sudo dnf install certbot
sudo dnf install python3-certbot-apache
sudo certbot --apache --email <あなたのメールアドレス>
ウィザート形式で質問が来ますので回答していきます。
ドメインを選択する質問がある場合は、該当の数字を入れてリターンです。
Let's Encrypt 証明書は 90 日間の有効期限がありますが、certbot は自動更新をサポートしています。通常、certbot のインストール時に自動更新のための cron ジョブまたは systemd タイマーが設定されます。確認するには、次のコマンドを実行します
sudo certbot renew --dry-run
結果に (success) と表示されれば大丈夫と思います。
最後に HTTPS でブラウザアクセスしてみます。
https://hoge.vs.sakura.ne.jp/
設定は以上です。
この記事が気に入ったらサポートをしてみませんか?