web-dev-qa-db-ja.com

SSLで終了したロードバランサーでWordpressの管理者にログインできません

HAProxy(バージョン1.7.2)フロントエンドとPHP 5.6バックエンドを使用したApache 2.4.10でWordpress 4.7.3を実行します。

これもDebian 8.7の下にあります。

X-Forwarded-ForX-Forwarded-ProtoはHAProxyによって正しく設定されています。

私が抱えている問題は、HAProxyフロントエンド(httpモードを実行している)でSSLを終了し、Wordpress Adminにログインしたときにエラーが発生することです。

申し訳ありませんが、このページへのアクセスは許可されていません。

here から手順を試しましたが、問題は解決しませんでした。

私のwp-config.phpの一番下に

define('FORCE_SSL_ADMIN', true);
// in some setups HTTP_X_FORWARDED_PROTO might contain
// a comma-separated list e.g. http,https
// so check for https existence
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)
       $_SERVER['HTTPS']='on';

私はWordpressのクリーンインストールを試みました(春の大掃除のために以前のWordpressのクライアント側をインポートしていましたが、それも問題を解決しませんでした)。

4
jtl

私は問題を考え出したところです。

wp-config.phprequire_once(ABSPATH . 'wp-settings.php');の前にHTTPS/SSL設定を追加する必要があります

だからあなたのwp-config.phpの関連部分はこのようになるはずです。

define( 'FORCE_SSL_ADMIN', true );

// in some setups HTTP_X_FORWARDED_PROTO might contain
// a comma-separated list e.g. http,https
// so check for https existence
if( false !== strpos( $_SERVER['HTTP_X_FORWARDED_PROTO'], 'https' ) ) {
    $_SERVER['HTTPS'] = 'on';
}

/** Sets up WordPress vars and included files. */
require_once( ABSPATH . 'wp-settings.php' );
5
jtl