【WordPress】Mixed Contentの解消

エラーで表示が崩れるので解消するお話

Mixed Content(混在コンテンツ)

混在コンテンツ - ウェブセキュリティ | MDN
ユーザが HTTPS を通じてページにアクセスすると、ユーザとウェブサーバとの接続は TLS で暗号化され、盗聴や中間者攻撃から保護されます。HTTPS のページの中に通常の平文の HTTP で送られてくるコンテンツが含まれている場合、混在コンテンツと呼ばれます。このようなページは部分的にしか暗号化されておらず、盗聴者...

WordPressの新規立ち上げ時とかによくはまる問題。

何もしないでエラーでないときもあるのですが、SSLの設定の仕方とかでたまに発生しちゃう。。。

httpでの通信はセキュリティ的にリスクが高いので常時SSL化が当たり前になっています。

ブラウザによっては正常に表示してくれない場合もあったり。

Let’s Encryptもいいけど自動更新よくこけるので有償SSLがおススメです。

とりあえず解消させます。

スポンサーリンク

wp-config.php

httpとhttpsが混在してるのですが一つずつ修正は面倒。

何も考えずにとりあえず解消するならwp-config.phpに下記を記述。

$_SERVER['HTTPS']='on';
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);

CDNやロードバランサーが絡む場合は下記のように記述するのがよいみたい。

if(!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'){
    $_SERVER['HTTPS']='on';
}
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);

んで、NGINXのconfに下記を追記。

proxy_set_header X-Forwarded-Proto https;

無限ループとかではまる場合にも効果的。

コメント

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