CloudFlareのSSLモードの意味と挙動を確認して見た
非SSLなサイトでもCloudFlareをかますことでSSL化ができるので重宝しているのですが、CloudFlareのSSLにはオプションがいくつかあるので、それぞれの意味や挙動を確認して見ました。
更新日: 2018.7.17公開日: 2018.6.13
非SSLなサイトでもCloudFlareをかますことでSSL化ができるので重宝しているのですが、CloudFlareのSSLにはオプションがいくつかあるので、それぞれの意味や挙動を確認して見ました。
前提として
基本的には、CloudFlareの公式サポートのページ・What do the SSL options mean?の通りです。
ちなみに、CloudFlareのSSLモードはあくまでCloudFlareのキャッシュを利用する(DNSページでクラウド・雲アイコンをオンにする)場合にのみ有効で、単にネームサーバーとして使う場合は、下記のモードは関係ありません。
Flexible SSLモード
クライアント <- SSL -> CloudFlare <- 非SSL -> 自サーバー
Flexibleモードでは、クライアントとCloudFlare間でSSL通信を行いますが、自サーバーとの間は通常のHTTP通信です。
クライアントとの通信は秘匿化されますが、自サーバーから出す情報は平文なので、個人情報などを含むデータは出さないほうがいいかもしれません。
一方で、無料サーバーや格安サーバーでは無料SSLがついていない場合もあるので、画像や静的ファイルを置くCDNとして格安サーバーを使う場合には、このFlexibleモードでCloudFlareを経由させれば、無料でSSL化が可能になります。
Full SSLモード
クライアント <- SSL -> CloudFlare <- SSL -> 自サーバー
全行程がSSLになるので、よりセキュアです。
自サーバー側にもSSLがあって、CloudFlareのキャッシュを使いたい場合は、この方法が良いでしょう。
Full SLL (Strict)モード
クライアント <- SSL -> CloudFlare <- SSL -> 自サーバー(CloudFlare発行の証明書が必要)
自サーバー側にCloudFlareが発行するSSL証明書をインストールするモードです。サーバー認証が入ることでよりセキュアになりますが、有料のEnterprise版のみで使える機能です。
以上、CloudFlareのSSLモードを見てきました。
基本的にはデフォルトの「FULL」で問題ないのですが、**サーバー側がSSL化されてない場合は「Flexible」**と覚えて置くと、後々ハマらないで済みそうです。