CertbotによるSSL証明書の設定

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

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

https://certbot.eff.org/lets-encrypt/centosrhel8-apache

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

一応、CentOS 8.2 で、Apache 2.4 でやった時の手順は以下(2020年9月3日時点)。

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.EPELライブラリの有効化

https://fedoraproject.org/wiki/EPEL#Quickstart

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

sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

後、一応、こちらも入れておいた方がいいい。

sudo dnf config-manager --set-enabled PowerTools

3.Certbotのインストール

sudo dnf install certbot python3-certbot-apache

4.証明書のインストール

HTTP用にバーチャルホストが定義してあれば、自動で証明書を取得して、定義ファイルも作ってくれる。

sudo certbot --apache

SSL化したいバーチャルホストを選択すれば、後は自動でやってくれる。ドメイン定義がちゃんとあっていることが前提なので、新サーバーに移行する場合の、新サーバー側で事前のSSL証明書取得についてはできない。

5.自動更新の設定

crontabに直接、定期的に更新するのを設定する。

echo "0 0,12 * * * root python3 -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew -q" | sudo tee -a /etc/crontab > /dev/null

6.確認

https://www.ssllabs.com/ssltest/

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください