CentOS6にワイルドカードの証明書(Let's Encrypt)導入と証明書発行でコケまくったけど何とかなった


前置き

こんばんは。@mashiです。
こんなご時世ですのでコストカットすることになり、無料の証明書であるLet's Encryptに変更することになりました。
もともとインフラは弱かったのですが、予想以上にコケまくって大変な思いをしたので、忘れないように備忘録として残しておきます。

導入と証明書発行


cd /etc/
git clone https://github.com/letsencrypt/letsencrypt
chmod 755 ./certbot-auto
./certbot-auto certonly --manual -d [ワイルドカードのドメイン] --preferred-challenges dns
表示された値をDNSにTXT 300で登録後、Enterで進む

これで/etc/letsencrypt/live/配下に[ワイルドカードのドメイン]の名前のディレクトリができているはず。(「*.」は抜けています)
そしてその中には、各pemファイルのリンクが存在します。

上記を確認した後に各ドキュメントルートのconfファイルを変更します。


cd /etc/httpd/conf.d
cp [該当のドキュメントルート].conf [該当のドキュメントルート].conf.org
vi [該当のドキュメントルート].conf

ファイルを開いたら3つのファイル指定の箇所を下記のように書き換えます。


SSLCertificateFile /etc/letsencrypt/archive/[ワイルドカードのドメイン]/cert1.pem
SSLCertificateKeyFile /etc/letsencrypt/archive/[ワイルドカードのドメイン]/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/archive/[ワイルドカードのドメイン]/chain1.pem

完了したらapache再起動


service httpd restart

これで完了のはず。

注意点

  • 2020/11/30にてCentOS6のサポートが終了したことにより、以前のままではyumが利用できなくなりました。/etc/yum.repos.d/配下のファイル内のmirrorlistをコメントアウトし、baseurlを新たに追加し指定してあげることが必要かもしれません。
  • certbotを利用する際にpythonが古いと怒られるケースがあります。アップデートして問題なければアップデートを、問題があるのであれば仮想環境にてpythonの新しいバージョンを動かすという方法もあるようです。めんどくさそう。
  • 最初の git clone https://github.com/letsencrypt/letsencrypt を叩くとエラーを吐くケースがあるようです。「 https://github.com/certbot/certbot/info/ref が無いよ」と怒られるようです。なんで無いんだよ。この場合は「 wget https://dl.eff.org/certbot-auto 」を叩いて直接certbotを導入してゴニョゴニョすればいけるのかな。

おまけ

ワイルドカードではなく普通に証明書を発行するのであればこれでいけました。confファイルの設定方法は同じです。


./certbot-auto certonly -a standalone -d [ドメイン]

更新の場合は下記のどちらか。


通常の更新(有効期限が30日未満の場合のみ可能)
cd /etc/letsencrypt
./certbot-auto renew

有効期限までの残り日数に関係なくすぐに証明書を更新したい場合
cd /etc/letsencrypt
./certbot-auto renew --force-renew

失効は下記です。


cd /etc/letsencrypt
./certbot-auto revoke --cert-path /etc/letsencrypt/live/[ドメイン名]/cert.pem

不明点が多いのでまた時間がある時にいろいろ調べていきます。証明書発行までが大変そう。

コメント等あればください。