2021年版Let's EncryptでのSSL証明書の発行方法/SSL化の方法


背景

これまでcertbot-autoで証明書の発行ができたと思いますが、2020年12月のリリース1.10.0からDebian系で非対応になり、2021年1月のリリース1.11.0では全てのOSで非対応となりました。certbot-autoではできなくなってしまったので、新しい設定方法を紹介します。

詳細や経緯はこちらから
Certbot-auto no longer works on Debian based systems
※記事タイトルではDebianといっていますが今では全OS非対応のようです。

現象

従来のやり方で証明書の発行を試みると、次のようなエラーが出ると思います。
Your system is not supported by certbot-auto anymore なので、もう非対応だよということです。

$ sudo ~/certbot/certbot-auto --no-bootstrap certonly --webroot -w /usr/share/nginx/html -d <独自ドメイン名> -m <メールアドレス> --agree-tos -n
Skipping bootstrap because certbot-auto is deprecated on this system.
/home/app_admin/certbot/certbot-auto has insecure permissions!
To learn how to fix them, visit https://community.letsencrypt.org/t/certbot-auto-deployment-best-practices/91979/
Your system is not supported by certbot-auto anymore.
Certbot cannot be installed.
Please visit https://certbot.eff.org/ to check for other alternatives.

設定方法

新しい設定方法は、環境によって変わってくるので、詳細は公式の案内を参考にしていただきたいですが、おおまかに

  1. certbot-autoなどの旧式をアンイストール
  2. snapdをインストール/アップグレード
  3. snapでcertbotをインストール
  4. certbotを実行

という流れになります。

詳細はこちらの公式の説明ページで、使用するミドルウェアとOSを指定すると、設定方法が案内されるのでそちらに従ってください。
certbot instructions

注:snapdのインストール時には enable classic snap support の部分の設定も基本的に必要となると思います(設定しなかったら、snapでcertbotインストールする際にエラーが出ると思うのでわかると思います)

SSL証明書の自動更新の設定

一部のOSを除いて、今回のcertbotでは証明書の更新を自動でやってくれるみたいです。なので、わざわざcronを設定する必要はないみたいです。必要があったら、先程の公式の説明ページにその旨記述があると思うので、そちらに従うようにお願いします。

どうしてもcertbot-autoが使いたい場合

非推奨ですが、どうしてもcertbot-autoが使いたかったら下記URLからダウンロードして使える、と公式にありました。ただし、Debian系での動作は保証されていますが、それ以外ではわかりません。また、今後アップデートはないため、セキュリティ上のリスクや、Let's Encryptサーバーとの互換性を失うリスクを許容した上で注意してご利用ください、ということです。

また、実行時には必ず --no-self-upgrade をつけて、最新版に自動更新されないようにしてください。