Le réglage de $ _SERVER ['HTTPS'] = 'on' empêche l'accès à wp-admin
-
-
Vousne parlezpasbeaucoup du reste de votre configuration.Avez-vous défini `define ('FORCE_SSL_ADMIN',true);`You dont say much about the rest of your configuration. Did you set `define('FORCE_SSL_ADMIN', true);`
- 1
- 2016-12-23
- user42826
-
Jen'aipas défini «FORCE_SSL_ADMIN».Je vaisessayer.I did not define 'FORCE_SSL_ADMIN'. I will try it.
- 0
- 2016-12-24
- nu everest
-
vous devez vérifier que les cookies https sont égalementenvoyés depuis l'équilibreur de charge via http.On dirait qu'ilsne sontpasenvoyés.Évidemment,l'inverse doit également être vérifié,les cookies que vous définissez sont-ilstransférés via https?you need to check that the https cookies are also sent from the load balancer over http. It sounds like they are not sent. Obviously also the other way around need to be checked, are the cookies that you set are being transferred over https
- 0
- 2016-12-24
- Mark Kaplun
-
1 réponses
- votes
-
- 2016-12-24
Unmerci spécial à user42826.
Selon le codex:
Si WordPressest hébergé derrière unproxyinverse quifournit SSL,maisest hébergé lui-même sans SSL,ces optionsenverrontinitialementtoutes les requêtes dans uneboucle de redirectioninfinie. Pour éviter cela,vouspouvez configurer WordPresspour reconnaître l'en-tête HTTP_X_FORWARDED_PROTO (en supposant que vous avez correctement configuré leproxyinversepour définir ceten-tête).
Les actions suivantes résoudront leproblème.
Ajoutez ceci à wp-config.php. ( référence du codex )
/* SSL Settings */ define('FORCE_SSL_ADMIN', true); /* Turn HTTPS 'on' if HTTP_X_FORWARDED_PROTO matches 'https' */ if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false) { $_SERVER['HTTPS'] = 'on'; }
Supprimez ceci defunctions.php car celan'estpasnécessaire.
/** * Make PHP HTTPS aware via HTTP_X_FORWARDED_PROTO */ if(isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') { $_SERVER['HTTPS']='on'; }
Special thanks to user42826.
According to the codex:
If WordPress is hosted behind a reverse proxy that provides SSL, but is hosted itself without SSL, these options will initially send any requests into an infinite redirect loop. To avoid this, you may configure WordPress to recognize the HTTP_X_FORWARDED_PROTO header (assuming you have properly configured the reverse proxy to set that header).
The following actions will solve the problem.
Add this to wp-config.php. (codex reference)
/* SSL Settings */ define('FORCE_SSL_ADMIN', true); /* Turn HTTPS 'on' if HTTP_X_FORWARDED_PROTO matches 'https' */ if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false) { $_SERVER['HTTPS'] = 'on'; }
Remove this from functions.php as it is unnecessary.
/** * Make PHP HTTPS aware via HTTP_X_FORWARDED_PROTO */ if(isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') { $_SERVER['HTTPS']='on'; }
-
La raisonen est que les cookies de sessions sécurisées sontperdus lorsqu'ils sont derrière l'équilibreur de charge,car LB utilise SSLmais lebackendestpurement http.Ravi de voir d'autrespersonnestravailler sur des architectures auniveau de l'entreprise;)The reason is that secure sessions cookies get lost when behind the load balancer because LB is doing SSL but backend is plain http. Nice to see others working on enterprise level architectures ;)
- 1
- 2016-12-24
- user42826
-
@ user42826 Ce quiestbien avec cette configuration,c'est queje peux simplement commenter FORCE_SSL_ADMIN sije veuxinterdire l'accès administrateur,ou y a-t-il d'autreseffets secondaires qui devraientme pousser à reconsidérer cette ligne depensée?@user42826 What is nice about this setup is that I can just comment out FORCE_SSL_ADMIN if I want to prohibit admin access, or are there other side effects that should cause me to reconsider this line of thinking?
- 0
- 2016-12-24
- nu everest
-
Dans votre configuration,il semble quene pas définir FORCE_SSL_ADMINempêche l'accès administrateur,maisilexiste demeilleuresfaçons de lefaireen fonction de vosbesoins.Exemples:empêcher l'accès wp-admin ou wp-login.php dans .htaccess ou apache config,supprimer l'authentificationnative WP via leplugin,réarchitecture WP afin que l'url wp-admin soit différente de l'urlpublique,etc.In your setup, it sounds like not setting FORCE_SSL_ADMIN prevents admin access, but there are better ways to do that depending on your requirements. Examples: prevent wp-admin or wp-login.php access in .htaccess or apache config, remove WP native authentication via plugin, re-architecture WP so that wp-admin url is different than public url, etc
- 1
- 2016-12-25
- user42826
-
Assurez-vous d'ajouter ce code avant la ligne `require_once (ABSPATH. 'Wp-settings.php');`.[Remerciementsparticuliers àjtlpour cette réponse.] (Https://wordpress.stackexchange.com/a/263461/78043)Make sure to add this code before the `require_once(ABSPATH . 'wp-settings.php');` line. [Special thanks to jtl in this answer.](https://wordpress.stackexchange.com/a/263461/78043)
- 6
- 2017-09-14
- Aaroninus
-
@Aaroninusmerci,j'utilise le SSLflexible Cloudflareet sans votre commentaire,j'auraispassé dutemps à chercher ànouveau.J'aitrouvé cette question connexeprécédemment: https://wordpress.stackexchange.com/questions/170165/wordpress-wp-admin-https-redirect-loop@Aaroninus thanks, I use Cloudflare flexible SSL and without your comment I would have spent time searching again. I found this related question previously: https://wordpress.stackexchange.com/questions/170165/wordpress-wp-admin-https-redirect-loop
- 0
- 2017-12-21
- baptx
-
Cela afonctionné sur l'instance Amazon.Avait dumal à déplacer le code vers le hautfait letravail.It worked on amazon instance. Was struggling moving the code to top did the job.
- 0
- 2018-09-11
- Krishnadas PC
Tout d'abord,mon serveur setrouve derrière un équilibreur de charge. Mon certificat SSL setrouve sur l'équilibreur de chargeet gère HTTPS. Les données arrivant sur leport 443 sonttransmises au serveur Wordpressen utilisant HTTP sur leport 80.
Cependant,wordpresset phpne connaissentpas la configuration demon serveur. Cela amène lenavigateur à seméfier de la validité demon certificat SSL valide.
Pour résoudre ceproblème,j'ai ajouté le code suivant àfunctions.php. J'aitrouvé ce codeici et le codexest d'accord .
Celafonctionnetrèsbien pour lefrontend,maismaintenant le/wp-admin/estinaccessiblemême avecmon compte Admin. Unefois connecté,je reçois unmessage "Désolé,vousn'êtespas autorisé à accéder à cettepage." Aucune autre aiden'estfournie.
J'ai donc cherché dans le dossier wp-adminet découvert que lesmots "Désolé,vousn'êtespas autorisé à accéder à cettepage." apparaissent 17fois différentes.
Laplupart de cesmessages d'erreur sont associés à une vérification des autorisations utilisateur.
Commentpuis-jegarder HTTPS "activé"et conserver l'accès administrateur?
Résumé:
MISE À JOUR:
J'ai découvert que lemessage d'erreur vient de wp-admin/menu.phpet de cemorceau de codeen bas. J'ai ajouté
menu.php
à lafin de l'erreurpour comprendre qu'il s'agissait de cefichier.Jene comprendstoujourspas comment résoudre ceproblème.