F.Ko-Jiの「一秒後は未来」

Let's Encrypt でブログと DailyFeed を HTTPS 対応した

今まで使ったことがなかった Let's Encrypt を使ってみたかったので、このブログを HTTPS 化しました。やってみたら簡単だったのでついでに DailyFeed も HTTPS にしました。

» Let's Encrypt – Free SSL/TLS Certificates

公式サイトの「Getting Started」にあるように、実際の作業は Certbot というツールを使っておこないます。

Certbot の公式サイトを開いたら使用している Web サーバーの種類 (Apache や Nginx など) とオペレーティングシステムを選択します。

そうするとそれぞれの OS と Web サーバーにおける Certbot を使用した設定手順が表示されるので、その指示に従ってセットアップするだけです。(今後手順が変わる可能性もあるのでここでは詳しく書きません。公式サイトを見てください。)

なお、 Certbot を使うと Web サーバーの設定ファイルが自動的に変更されます。例えばこのブログの場合は Nginx で /etc/nginx/conf.d/blog.fkoji.com.conf に blog.fkoji.com ドメインの設定を書いていたので、このファイルに HTTPS 用の設定が追加されます。

そのため Certbot の実行前に、変更されるであろうこれらの設定ファイルのバックアップを取っておくと安心です。

なお、 Let's Encrypt は証明書の有効期限が 90 日間となっているため、証明書の更新については Certbot を cron 等で定期的に動かすことによりおこなうことが推奨されています。このブログは Nginx を Docker コンテナで動かしているので、

/usr/bin/docker exec -d nginx /usr/bin/certbot renew

のように docker exec をホスト側の cron から実行するようにしました。

0 0,12 * * * /usr/bin/python -c 'import random; import time; time.sleep(random.random() * 3600)' && /usr/bin/docker exec -d nginx /usr/bin/certbot renew && /usr/bin/docker restart nginx

(追記) コンテナの再起動が必要だったので crontab の末尾に追加しました。

また、 Let's Encrypt に関するファイルはすべて /etc/letsencrypt 以下に生成されるようなので、コンテナを作り直すときのために /etc/letsencrypt をホスト側にコピーして、改めてそのディレクトリを /etc/letsencrypt にマウントするようにしました。

なお、HTTPS に変更したら Google Analytics のプロパティの設定を変更したり、Search Console にサイトを登録し直したりといったサイト管理に関する付随作業が発生するので、そのあたりはググって確認してみるといいです。

コメントを残す

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

著者について

fkoji

F.Ko-Ji

Webエンジニアやってます。最近は ドットインストール の開発がお仕事です。その傍ら、個人で Meity電車遅延なう梅酒.in#グラドル自画撮り部 の部室といったネットサービスを開発・運営してます。梅酒と草野球とリアル脱出ゲームが好きです。

» 詳しいプロフィールや運営サービスの一覧など