CloudFlareのFlexibleでSSLするとぶっ壊れる

この記事は約2分で読めます。
スポンサーリンク

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';
}

コメント

タイトルとURLをコピーしました