CloudFlareのSSLモードの意味と挙動を確認して見た

非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」と覚えて置くと、後々ハマらないで済みそうです。