Let's Encrypt 証明書導入のメモ

長らくHTTPでブログを運用していた。
ただのブログだし、ユーザーが重要情報を入力するとも思えないし。。
考えうるリスクとしては公共Wifiに繋いでブログを編集した場合にパケットを盗聴されて、管理者パスワード等を引っこ抜かれるというのがあるが、公共Wifiでブログの編集なんかしないし。。
そもそもSSL証明書の導入が何か面倒くさそうだし。。

でも、SSLが無いよりは有ったほうが良いだろうということで、前々から話題になっていたLet's Encryptの無料証明書を導入したところ、ものの数分で証明書が発行・導入されて、もっと早くやっていれば良かったと反省。

以下、Let's Encrypt 証明書導入のメモ

お世話になっているDigitalOceanがLet's Encrypt 証明書導入のガイダンスを公開しているので、基本的にはそちらのガイダンスに則って進めた。

はじめに

サーバーで443番ポートが開放されているか確認する。開放されていなければ開放する。

証明書の導入

以下のcertbot コマンドで証明書の導入を行う。Apacheサーバーなのでapacheオプションを指定。certbot -h でその他のオプションを確認できる。

(sudo) certbot --apache -d <your.domain.com>

すると、以下のような項目を聞かれるので答えていく。

1. 緊急連絡用のメールアドレス。ちなみに導入が完了した際には特にメールでの通知はなかった。
2. 利用規約への同意
3. 先述したメールアドレスをLet's Encryptのパートナー企業と共有しても良いかの確認
4. サーバーへのHTTP通信をHTTPS通信にリダイレクトするかの確認。Yesを選択した場合、ApacheのSSL関連の設定が編集されて、すべてのHTTP通信がHTTPS通信にリダイレクトされる。(ここでYesを選択したのでブログ内の内部リンクをhttp://からhttps://に書き換える必要がなくなった)
5. 証明書の導入完了。

証明書導入時のログは/var/log/letsencrypt/letsencrypt.logに記録される。
証明書や秘密鍵は/etc/letsencrypt/live/<your.domain.com>/に保存される。(ただし、すべてシンボリック・リンクでファイルの実体は別の場所に保存されている)

自分の場合は導入が完了したら即サーバーがSSL化されていたが、レンタルサーバーによってはSSL化されるまで一定時間かかる場合もある模様。

証明書の更新

Let's Encryptの証明書の有効期間は90日間で、それを過ぎると更新が必要になるが、certbotが自動更新を請け負ってくれる。具体的にはcertbotという名前のcronジョブを/etc/cron.dに作成して、定期的に更新処理を行ってくれる。以下のコマンドで更新状態を確認できる。

(sudo) systemctl status certbot.timer

非常に簡単かつ迅速に証明書を導入できた。ぜひ今後もサービスを継続してほしいので、しっかりお布施しておいた。

Leave a Reply

Your email address will not be published. Required fields are marked *