さくらレンタルのSSLでハマる

さくらレンタルサーバーのSSLで嫌〜な感じのことがあったので記録しおく。

要点は
・さくらレンタルでジオトラストの独自SSLを使ったら、ミックスコンテンツ(httpsからhttpリソースを読み込んでるぞという奴)エラーが山のように出た。
・http/https切り替え系プラグインを次々と試すも、徒労に終わる(ここが時間がかかった)
・httpsをWPが検知できてないんじゃないか?と思って$_SERVERをダンプしたら、案の定’https’のインデックスはなし
・その代わり[‘HTTP_X_SAKURA_FORWARDED_FOR’]という謎のインデックスがあった!
そこでこちら様のサイトを参考に、以下のようなコードをwp-config.phpに仕込む

if (isset($_SERVER[‘HTTP_X_SAKURA_FORWARDED_FOR’]) && $_SERVER[‘HTTP_X_SAKURA_FORWARDED_FOR’] != ”)
$_SERVER[‘HTTPS’] = ‘on’;

乱暴ですね。でもこれでかなりのエラーが消えた。
・しかし、特定のプラグインでは消えない。これは謎だ。そのプラグインの中でサーバ変数をいじっている様子はない。首をかしげる。しかし時間がないので、そのプラグインファイル内に上記のコードを再度ぶちこむ(これは本当はやってはいけないのだが・・・あとで真相究明するとして応急処置で)
・これでエラーはすべて解消!

なぜこんなややこしいことになったのか?
多分、独自SSLの前に共有SSLの設定をしてしまったからだろう。
WPのプラグインが共有SSLで正常に動かない事があるのは、is_ssl()がhttpsをキャッチ出来ていないからだろう。有名なのはcontact form 7だ。

とにかくこの件で4時間くらい捨ててしまった。思わぬ落とし穴だ。

本来ならばWordpress Httpsなどのプラグインを入れれば1分で完了するのだが・・・

コメント

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