CertbotによるSSL証明書(CentOS7.9)

CentOS 7.9 にLet’s encrypt でSSL証明書を設定した時のメモ。

検索すると、古いやり方が出てくる。最新のやり方は、Certbotの本家サイトに行くのがいい。

https://certbot.eff.org/

OSとWebサーバーを選んで、後は指示通りにやるだけ。

一応、CentOS 7.9 で、Apache 2.4 でやった時の手順は以下(2021年2月5日時点)。

1.SSLサーバーの設定

mod_sslは既に入れてあり、SSLは有効化されている。

ただし、SSL証明書を取得したいドメインについては、バーチャルホストとして定義するほうがいい。

デフォルトの/etc/httpd/conf/httpd.confではなく、/etc/httpd/conf.d以下に、バーチャルホストを定義する。ここに定義した、XXXX.com.confに対して、後の手順4で、Certbotが、XXXX.com-le-ssl.confを作成して、XXXX.com.confについても、httpsリダイレクトに修正してくれる。

2.snapdのインストール

https://snapcraft.io/docs/installing-snap-on-centos

これも既にやってあったけど、一応、以下をやる。

sudo yum install epel-release

後は、snapdをインストールする。

sudo yum install snapd
sudo systemctl enable --now snapd.socket
ln -s /var/lib/snapd/snap /snap

※この後、一度ログアウトするか、再起動

3.snapdのバージョン確認と更新

sudo snap install core
sudo snap refresh core

4.以前のCertbotのアンインストール

sudo yum remove certbot

5.Certbotのインストール

以下を実行。

sudo snap install --classic certbot

6.Certbotコマンドの設定

コマンドにシンボリックリンクをはる。

sudo ln -s /snap/bin/certbot /usr/bin/certbot

7.証明書の設定

以下コマンドを実行して、サイトを選択して設定。

sudo certbot --apache

8.証明書の自動更新の設定

更新のスケジューリングは自動でされる。スケジューリングは、以下コマンドで確認できる。

sudo systemctl list-timers

※CentOS8の場合は、/etc/crontab に設定されている。