Cloudflareを使ってウェブサイトを無料でHTTPS化してみた

Cloudflareを使うとウェブサイトを無償でSSL化できます。
2021.03.12

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Cloudflare は様々な SSLオプション(HTTPS化)を提供しています。

今回は、ウェブサイトを SSL 化 する構成パターンをご紹介します。

すべて無料プランで利用可能です。

前提

大前提として、CloudFlare からトラフィックを配信するよう、ウェブサイトを Cloudflare に登録します。

具体的には、以下を行います。

Cloudflare フルマネージドの無償 SSL 証明書

追加したドメインが「example.com」の場合、

  • example.com
  • *.example.com

に対応した証明書(Universal Certificateと呼びます)が DigiCert から無償で発行されます。

証明書の有効期限は1年であり、DNS の TXT レコードを利用したドメイン認証で、自動更新されます。

この証明書は コンソールの 「SSL/TLS → Edge Certificates」 から確認できます。

SSL 主要3パターン

ブラウザ/Cloudflare/オリジンサーバー間の通信 の SSL 化について、主要3パターンを紹介します。

パターン1:SSL化しない

1つ目のパターンは SSL 化しません

この場合、Cloudflare の設定は不要です。

セキュリティの向上や HTTP/2 などの最近のプロトコルの制約などから、常時 SSL 化が推奨されています。

特殊な事情がない限りは、SSL 化を検討しましょう。

パターン2:ブラウザ - Cloudflare 間だけ HTTPS化

2つ目のパターンは、ブラウザ - CloudFlare 間だけ HTTPS 化します。

コンソールの「SSL/TLS」で Flexible を選択するだけで設定完了です。

ブラウザで HTTPS 接続してみましょう。

DigiCert の証明書を確認できますね。

  • Common Name : sni.cloudflaressl.com
  • Subject Alternative Name : sni.cloudflaressl.com, example.com, *.example.com

となっています。

コンソールの「SSL/TLS → Edge Certificates → Always Use HTTPS」 を「On」にすると、HTTP 接続時に HTTPS へリダイレクされるようになります。

常時HTTPS化のためにも、この設定は有効にしておきましょう。

パターン3:ブラウザ - Cloudflare - オリジンサーバー 間を end-to-end に HTTPS化

3つ目のパターンは end-to-end で HTTPS 化します。

コンソールの「SSL/TLS→ Overview」で Full(strict) を選択し、Cloudflare - オリジン間の通信を HTTPS 化するために、オリジンサーバーに SSL 証明書をインストールします。

オリジンサーバーの SSL 証明書のインストール

Cloudflare には「Origin CA Certificates」という機能があり、オリジンサーバー向けに

  • example.com
  • *.example.com

のホスト名に対応した証明書、秘密鍵を生成します。

これらを生成するには、コンソールの「SSL/TLS→ Origin Server」で「Create Certificate」をクリックし、証明書の作成画面に移動します。

証明書のフォーマットや有効期限(デフォルトでは15年。最短で7日)を指定するだけで作成完了です。

生成された証明書、秘密鍵をオリジンサーバーにインストールすれば end-to-end の HTTPS化の完了です。

AWS Certificate Manager(ACM) に証明書をインストールする場合など、オプションでルート証明書も設定する必要がある場合もあります。リンク先から適宜ルート証明書を取得してください。

Cloudflare で利用可能な SSL 証明書の種類

今回証明した SSL 証明書は無料プランでも利用可能な Universal 証明書です。

有料プランを契約すると、Universal 証明書以外にも

  • ドメイン専有型の Dedicated SSL 証明書(Universal は Common Name が sni.cloudflaressl.com 固定)
  • EV/OV に対応した Custom SSL 証明書(EV/OV 対応など)
  • よりセキュアな Keyless SSL 証明書

など、用途に合わせて様々な証明書を利用できます。

詳細は次のドキュメントを参照ください。

End-to-end HTTPS with Cloudflare - Part 2: SSL certificates – Cloudflare Help Center

参考