CloudFlare、SSLがなくてもCloudFlareを利用すればSSLができる。
SSL証明書をサーバーにインストールせずともSSLがかかっているように見せる事ができる。
それがFlexibleの力。
しかし、落とし穴がある。
FlexbleはイメージとしてはCloudFlareが上からかぶせているサイトをSSLにするって事。
元々のサイトは暗号化されていないページ。そのデータをCloudFlareがラップしている感じ。
中では暗号化されていないデータがやり取りされている。
つまりは80番ポートで通信されており、443ポートは利用されてないって事。
$_SERVER[‘HTTPS’] を利用すると、0が
$_SERVER[‘SERVER_PORT’]を利用すれば80を返すわけだ。
WordPressなどのCMSはこのサーバー変数を利用してSSL、つまりhttpsアドレスと判断をしている場合がある。
なので表ではhttpsサイトに見えても裏側の処理はhttpとして処理されているといったこともある。
なのでFlexibleは使わずにFullを利用したほうがいい。
どうしてもWordPressでFlexibleを利用したいならwp-config.phpの最後に
if ( ! empty( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https' ) {
$_SERVER['HTTPS']='on';
}
コメント