web-dev-qa-db-fra.com

Impossible de se connecter à Wordpress Admin avec l'équilibreur de charge terminé par SSL

Exécution de Wordpress 4.7.3 avec une interface HAProxy (version 1.7.2) et Apache 2.4.10 avec un système PHP 5.6.

Tout cela est également sous Debian 8.7.

X-Forwarded-For et X-Forwarded-Proto sont correctement définis par HAProxy.

Le problème que je rencontre est lorsque SSL est arrêté sur l'interface HAProxy (mode http en cours d'exécution) et que je me connecte à Wordpress Admin, le message d'erreur s'affiche.

Désolé, vous n'êtes pas autorisé à accéder à cette page.

J'ai essayé les étapes de ici mais ils n'ont pas résolu le problème.

Au bas de mon wp-config.php j'ai

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

J'ai essayé une installation propre de Wordpress (importait le côté client d'un Wordpress antérieur pour le nettoyage de printemps, mais cela n'a pas résolu le problème non plus).

4
jtl

Je viens de comprendre le problème.

Vous devez ajouter les paramètres HTTPS/SSL avant require_once(ABSPATH . 'wp-settings.php'); dans votre wp-config.php

Ainsi, la partie pertinente de votre wp-config.php devrait ressembler à ceci.

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