web-dev-qa-db-fra.com

Mise à niveau vers le tableau de bord d'administration de SSL Breaks

J'exécute actuellement une instance de WordPress, version 4.5.3, sur un serveur Amazon EC2. Il utilise:

  • CentOS 7 (OS) et SELinux est activé.
  • Le serveur exécute Apache avec mod_security et mod_evasive
  • PHP 5.6.24

Le site s'appelle The Rambling New Yorker .

Il n'y a pas si longtemps, je suis passé à SSL avec Encryptons . Le processus était assez simple et j'ai maintenant le front-end sécurisé. J'ai même installé un plugin qui redirige le trafic non-SSL vers le site sécurisé.

Malheureusement, le tableau de bord de l'administrateur est endommagé . Dès que j'ai effectué le changement, ça a commencé à ressembler à ceci:

 WordPress SSL Problem 

J'ai changé les URL (dans la base de données, pas via le tableau de bord) pour qu'elles soient la version SSL et j'ai activé " Forcer SSL Admin " dans le fichier de configuration. La page de connexion est bien.

Le basculement a fonctionné une fois lorsque j'ai désactivé tous les plugins. Le fait de les réactiver un par un m'a amené à croire que WP Super Cache était peut-être le problème, mais le problème est survenu lorsque j'ai effectué le basculement après la suppression du plug-in.

Désactiver mod_security élimine le problème, mais il n'y a pas de messages d'erreur utiles dans les journaux d'erreurs Apache, donc je ne sais pas ce qui le contrarie.

Le seul indice est que les demandes pour load-styles.php et load-scripts.php renvoient un 403 error:

 WordPress SSL Problem #2 

Toutefois, ces fichiers ont la même propriété (Apache:apache) et les mêmes autorisations que tous les autres fichiers du dossier wp-admin (644). Donc, je suis désemparé. Quelqu'un a-t-il une idée de la cause sous-jacente?

Mise à jour - 8/26
Après quelques recherches, je suis parvenu à la conclusion que l’erreur PHP notée dans les commentaires ci-dessous était liée au fait de ne pas avoir une extension particulière - mbstrings - installée. Malheureusement, lorsque je suis allé l'installer, j'ai essayé d'installer la mauvaise version, puis j'ai désinstallé certains packages, ajouté le référentiel Remi, puis installé des packages qui n'étaient pas tout à fait identiques aux anciens. Mon serveur exécute PHP 5.6.24, mais certains packages peuvent avoir été à partir de 5.4. WordPress a cessé de fonctionner. Après avoir hésité un peu, je viens de restaurer le serveur sur l'AMI créée avant de me lancer dans mon aventure SSL.

Je vais essayer de migrer à nouveau vers SSL ce week-end. Si le problème se reproduit, je serai de retour ici. Sinon, je posterai une réponse. Quoi qu'il en soit, je vais éviter de modifier la base de données dans la mesure du possible.

Mise à jour 2 - 8/27
L’ingrédient secret était l’emballage php56u-mbstrings. Une fois installé, le script fonctionnait correctement sur la ligne de commande, bien que l'interface graphique ne cesse de générer des erreurs AJAX et ne recherche que trois tables. Le script CLI a remplacé 31 instances de http://www.ramblingnewyorker.com avec https://www.ramblingnewyorker.com . Cependant le problème persiste. Il est apparu à partir du moment où le site sécurisé a été mis en place. La désactivation de mod_security ou l'ajout des lignes suivantes à mon fichier ssl.conf résout le problème:

<LocationMatch "/wp-admin/load-scripts.php">
    <IfModule mod_security2.c>
        SecRuleEngine Off
    </IfModule>
</LocationMatch>
<LocationMatch "/wp-admin/load-styles.php">
    <IfModule mod_security2.c>
        SecRuleEngine Off
    </IfModule>
</LocationMatch>

En raison des implications pour la sécurité, j'ai commenté ces lignes. Cela semble être lié à mod_security, mais je ne trouve pas un seul message d'erreur dans les fichiers journaux Apache.

3
Mike P

Problème résolu! La cause s'est avérée être simplement morte. Une des règles mod_security interférait avec le chargement du tableau de bord de l'administrateur. Je ne l'avais pas remarqué plus tôt car je n'avais pas vérifié le journal des erreurs SSL (car je ne savais pas qu'il était là). Dès que je l'ai fait, et désactivé la règle incriminée pour les fichiers qui ne chargeaient pas tout allait bien.

2
Mike P

Vous ne savez pas quel plug-in vous utilisez pour appliquer SSL, mais je le désactiverais pour éviter tout conflit avec la solution possible ci-dessous.

Pour vous assurer que vous avez mis à jour toutes vos URL vers le protocole HTTPS, procédez comme suit:

  1. Allez télécharger Le script de recherche et de remplacement de base de données d'Interconnect IT ici
  2. Décompressez le fichier et déposez le dossier (Search-Replace-DB-master) où votre WordPress est installé (la racine) et renommez le dossier en replace ( screenshot )
  3. Naviguez jusqu'au nouveau dossier que vous avez créé dans votre navigateur (ex: https://www.ramblingnewyorker.com/replace) et vous verrez l'outil de recherche/remplacement
  4. Cela devrait être assez explicite jusqu'à ce point: entrez votre lien HTTPS dans le champsearch for…et le nouveau lien HTTPS dans le champreplace with…

Vous pouvez cliquer sur le bouton exécution à sec sous actions pour voir ce qu'il va remplacer avant d'exécuter le script. Une fois que vous avez terminé, veillez à supprimer le dossier /replace/.

Cela vous aidera à vous assurer que vous exploitez pleinement votre site Web avec les nouveaux liens SSL (https://). Si vous avez toujours des problèmes, faites le moi savoir. Nous pouvons donc déterminer la prochaine étape.

2