CertbotによるSSL証明書(CentOS Stream9)

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

Certbotの本家ページは以下。

https://certbot.eff.org/

SoftwareでWebサーバーを、SystemでOSを選べばいいのだが、本日時点で、CentOS Stream9は対象にないので、とりあえずCentOS8で。

https://certbot.eff.org/instructions?ws=nginx&os=centosrhel8

1.snapdのインストール

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

1)EPELの登録(既に登録済みだった)

sudo dnf install epel-release
sudo dnf upgrade

2)インストール

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

※この後、一度ログアウトして再ログイン。

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

sudo snap install core
sudo snap refresh core

3.Certbotのインストール

sudo snap install --classic certbot

4.Certbotコマンドの設定

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

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

5.証明書の設定

/etc/nginx/nginx.confのserver_nameにドメインが設定されていることが前提。以下コマンドを実行して、server_nameに設定されているドメインを選択する。

sudo certbot --nginx

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

自動更新の確認は以下。

certbot renew --dry-run

スケジューリングは、以下コマンドで確認できる。

sudo systemctl list-timers

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 に設定されている。