こんにちは、納戸工房です!
今回は、ウェブサーバの証明書を取得するために、Let’s Encryptを利用してみた体験をお話しします。実は10年ほど前にも同じくLet’s Encryptを使っていたのですが、当時と比べて環境が変わり、少し工夫が必要になりました。
10年前の記録を振り返って
10年前、初めてウェブサーバを立てたときに、Let’s Encryptを使って証明書を取得していました。当時の記録に残っていたコマンドは以下のものです:
docker run -it --rm -p 443:443 -p 80:80 --name certbot quay.io/letsencrypt/letsencrypt:latest certonly --standalone -d {ドメイン名}
このコマンドを使うと、Dockerコンテナ内でCertbotを動かし、簡単に証明書を取得できていました。しかし、時代の流れとともにこの方法には問題が生じることに…。
コマンドが動かない!
久々に記録を頼りにこのコマンドを実行してみると、docker imageが5年以上更新されていないことが判明しました。そのため、現在の環境ではうまく動作しなかったのです。
新しい方法を試してみる
Let’s Encryptの証明書を取得するために重要なのはCertbotを使えること。そこで、別のDockerコンテナを立ち上げてCertbotをインストールし、以下のコマンドを実行しました:
certbot certonly --standalone -d {ドメイン名}
結果、これで無事に証明書を取得することができました!
証明書をウェブサーバに適用
コマンドの実行後、/etc/letsencryptディレクトリに証明書と秘密鍵が生成されます。このディレクトリの中身をウェブサーバにコピーし、ウェブサーバの設定ファイルで参照するようにします。
これで証明書の適用が完了し、https接続が可能になりました。
まとめ
Let’s Encryptは無料で使える非常に便利なツールですが、古い方法では環境の変化に対応できないこともあるため、最新の手段を模索する必要があります。今回学んだポイントは次の通り:
- 古いDockerイメージの使用に注意
- 今回は5年以上更新されていないイメージが原因で問題が発生しました。
- Certbotは柔軟に利用可能
- Docker環境が整っていれば、他のコンテナを利用してCertbotを動かすことができます。
- 証明書の配置と参照設定が必要
- 生成された証明書を適切にウェブサーバに適用することで、https化が完了します。
無料で信頼性の高い証明書を提供してくれるLet’s Encrypt、ぜひ活用してみてください!最後まで読んでいただき、ありがとうございました✨
コメント