無料SSL(Let’s Encrypt)の設定方法 — 個人事業主でもできるhttps化

PR

本記事は広告(アフィリエイト)を含みます。

「http://」のままサイトを公開すると、ブラウザに「保護されていない通信」と表示され、訪問者に不安を与えてしまいます。SSL化(https化)は今や個人サイトでも必須ですが、実は無料で、しかも自動更新までしてくれる仕組みがあります。それが「Let’s Encrypt」です。

Let’s Encryptとは

Let’s Encryptは非営利団体が提供する無料の証明書発行サービスです。有料のSSL証明書と暗号強度自体に大きな差はなく、個人サイト・中小企業サイトであれば無料版で十分なケースがほとんどです。証明書の有効期限は90日と短めですが、更新作業はツール(Certbot)で自動化できます。

取得方法の全体像

  1. ドメインのDNS Aレコードを、サーバーのIPアドレスに向ける
  2. DNSの反映を待つ(数分〜数時間、環境によっては最大24時間程度)
  3. Certbotをインストールする
  4. Certbotでドメイン所有権を確認し、証明書を発行する
  5. Webサーバー(Nginx等)の設定にSSL証明書を反映する
  6. 自動更新のためのスケジュール設定を確認する

Docker構成での注意点

WordPressをDocker(Nginxコンテナ)で運用している場合、少しだけ注意が必要です。Certbotがドメイン所有権を確認する際、指定のURL(/.well-known/acme-challenge/)にアクセスできる必要がありますが、Nginxがコンテナの中で動いていると、ホスト側に直接インストールしたCertbotから見えないことがあります。

解決策としては主に2つあります。

  • webroot方式: Nginx側で /.well-known/acme-challenge/ へのアクセスを、Certbotと共有するフォルダに向けておく。あらかじめNginxの設定ファイルにこの受け口を用意しておけば、証明書取得時に特別な再起動が不要
  • certbotコンテナ方式: certbot公式のDockerイメージを使い、Nginxコンテナと同じボリュームを共有させて証明書を発行する

どちらの場合も、事前にNginxの設定ファイルへ受け口(ロケーション)を用意しておくと、後からの作業がスムーズです。

自動更新を忘れずに

Let’s Encryptの証明書は90日で失効します。Certbotには自動更新用のコマンドが用意されているので、cronやsystemdタイマーに登録しておけば、以降は基本的に手動作業なしで維持できます。

まとめ

SSL化は「難しそう」という印象を持たれがちですが、Let’s Encrypt + Certbotの組み合わせなら費用ゼロで、かつ一度仕組みを作れば自動更新まで面倒を見てくれます。ドメインを取得したら早めに着手しておきたい作業です。

本記事はアフィリエイト広告を含みます。紹介する商品・サービスへの申込み等により、当サイトが提携する事業者から成果報酬を受け取る場合があります。
上部へスクロール