Clean up WordPress website HTTPS insecure content
どうしても、「混在コンテンツ(混合コンテンツ)」になって治らないという場合に使ってみるのがよいかと思う。急ぎの時の暫定的な対策にもなるかと思う。
設定方法
設定は簡単です。まずは「シンプル」あたりから試して問題なければ解決ですね。ダメなら、1つランクを上げて「コンテンツ」にみたいな感じで順次試していけばよいかと思います。
「シンプル」はWordpressが自動で吐き出す、スタイルシートやスクリプトのhttp://部分をhttps://に変更してくれます。
■シンプル
ウェブサイトの性能に与える影響が最小である最高速の方法です
wp_register_script() または wp_enqueue_script() で登録されたスクリプト
wp_register_style() または wp_enqueue_style() で登録されたスタイルシート
wp_get_attachment_image() や wp_get_attachment_image_src() などを呼び出して読み込まれる画像などのメディア
wp_upload_dir() から返されるデータ (一部の CAPTCHA 画像など)
Image Widget プラグインで読み込まれる画像
■コンテンツ
シンプルでの対策に加えて、
ページコンテンツ内のリソース
文字列」ウィジェット内のリソース
■ウィジェット
コンテンツでの対策に加えて、
すべてのウィジェットのリソース
■キャプチャ
ヘッダーからフッターまで、ページ内のすべてに対して
ページ全体をキャプチャし、スクリプト、スタイルシート、その他のリソースを修正します
互換性とパフォーマンスの問題を起こす可能性がある AJAX 呼び出しを除く
■すべてキャプチャ
もっとも負荷が高くなりますが、必要な場合もあります
ページ全体をキャプチャし、スクリプト、スタイルシート、その他のリソースを修正します
互換性とパフォーマンスの問題を起こす可能性がある AJAX 呼び出しも含める
設定は上記のようなものがあります。
逆に、これがチェックリスト代わりにもなりますね。SSL化するのにあたって、どういう部分をチェックすればよいかという。
HTTPS の検出方法が変更できる
ページが HTTPS で読み込まれたことを WordPress が検出する方法を選択してください
・標準の WordPress の機能
・HTTP_X_FORWARDED_PROTO (ロードバランサー、リバースプロキシ、NginX など)
・HTTP_X_FORWARDED_SSL (リバースプロキシなど)
・HTTP_CLOUDFRONT_FORWARDED_PROTO (Amazon CloudFront HTTPS キャッシュ済みコンテンツ)
・HTTP_X_ARR_SSL (Windows Azure ARR)
・HTTP_CF_VISITOR (Cloudflare Flexible SSL)、 Cloudflare が HTTP_X_FORWARDED_PROTO を送るようになったため非推奨
・HTTPS を検出する方法がない
一部の環境では、SSLの検出がうまくいかないだけという場合があります。その場合も、このプラグインの設定で上記のところがあるのでここを変更するだけで、後はWordpressの機能だけでSSL対応可能な場合もあります。
HTTPS の検出方法が上手くいなない事例
3. 環境変数の取扱い
「さくらのレンタルサーバ」にて提供しているウェブサーバ (Apache) は、
80番ポートを使用するものと、443番ポートを使用するものとの 2種類に分けられます。
一般的に、80番ポートは「http://」、443番ポートは「https://」という形式でアクセスされ、
「https://」についてはプロクシとして動作します。
そのため、同じディレクトリへのアクセスであっても、その際に呼び出されるウェブサーバ が異なると、
CGIプログラムやウェブサーバが.htaccessなどのファイルを読み込む際、挙動に違いが生じます。
例えば、HTTPとしてアクセスした場合はお手元のコンピュータが、
HTTPSとしてアクセスした場合はサーバそのものがアクセス元となります。
SSL利用時の注意点 – さくらのサポート情報
うーん、更に調べて下記コードをwp configに追加しました。
if( isset($_SERVER['HTTP_X_SAKURA_FORWARDED_FOR']) ) {
$_SERVER['HTTPS'] = 'on';
$_ENV['HTTPS'] = 'on';
}
さくらインターネット ラピッドSSL・Wordpressで困ったこと | RIコンサルティング株式会社
HTTP_X_FORWARDED_SSL という環境変数でないので、SSLの検出方式を変えるのは自力でやらないと無理そうですね。
(1) コントロールパネルは[www]と[wwwなし]を共用,.htaccess はできるだけシンプルに
(2) wp-config.php には上記のサーバー変数を一応書いておく.コントロールパネル「一般」のサイトアドレスはhttpsのwwwなしで統一.
(3) サイトにアクセスして,ソース表示して,CSS以外はhttpsでアクセスできていることを確認する(表示は崩れている).
(4) 「SSL Insecure Content Fixer」というSSL用のリライトプラグインを導入
さくらのレンタルサーバーで立ち上げたWordpressを完全SSL対応(鍵緑)にするメモ – aki's right brain
この記述では、「SSL Insecure Content Fixer」はhttpsに書き換えるために使用しているものだと思います。
コメントを残す