見出し画像

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/

設定は以上です。

この記事が気に入ったらサポートをしてみませんか?