web-dev-qa-db-fra.com

Contenu mixte avec SSL, wordpress derrière un proxy inverse

J'ai rencontré un contenu mixte avec des problèmes SSL. J'ai postulé pour le certificat SSL Encryptons mon site de test wordpress derrière un proxy inverse (articaproxy).

Le même certificat SSL a été déployé sur le serveur proxy inverse et l'hôte virtuel wordpress.

La redirection http/https par proxy inverse fonctionne correctement.

J'ai forcé les URL de siteurl et home à https dans la base de données mysql, pour tester https

Pendant que vous ouvrez mon site Web wordpress, cliquez sur Afficher le contenu du bloc. console chromée Invite 'Cette page n'est pas sécurisée (HTTPS cassé).'

La console Chrome indique également que certains stylesheet/script/image ne sont pas servis via HTTPS  stylesheet/script/image are not served over HTTPS 

J'ai essayé d'installer des plugins associés pour résoudre ce problème, mais j'ai échoué. Donc, ils sont handicapés.  plugins to fix mixed content 

La zone d'administration de mon wordpress ne peut pas être chargée, à cause de ERR_TOO_MANY_REDIRECTS

Je voudrais savoir comment résoudre le contenu mixte et trop de redirections dans les problèmes de page d'ouverture de session d'administrateur.

Les suggestions sont les bienvenues.

****************** Mettre à jour ***********************

Bonjour ~ Je voudrais fournir plus de détails sur les paramètres de mon site de test wordpress.

Parties de mes valeurs wp-config.php liées à WP_SITEURL, WP_HOME, HTTPS:

define('WP_SITEURL', 'https://'.$_SERVER['HTTP_Host']);
define('WP_HOME', 'https://'.$_SERVER['HTTP_Host']);
define('FORCE_SSL_ADMIN', true);

if ( isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
$_SERVER['HTTPS']='on';

Les valeurs 'siteurl' et 'home' du champ wp_options dans wordpress DB:

https://yuantafood.i-shopping.email
https://yuantafood.i-shopping.email

Comme indiqué ci-dessus, je ne pouvais me connecter à la page wp-admin qu'avec mon adresse IP interne. Essayez de vous connecter page wp-admin avec IP/FQDN externe ne peut pas être chargé, en raison de l'erreur: ERR_TOO_MANY_REDIRECTS.

Forcer Google avec de nombreux articles, forcer SSL avec .htaccess semble efficace pour permettre aux autres d'échapper aux problèmes de contenu mixte.

J'ai également essayé avec de nombreuses méthodes pour éditer .htaccess, principalement 301 redirections permanentes et 302 redirections temporaires.

valeurs du fichier .htaccess dans le dossier wordpress (301)

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On

# RewriteBase /
# RewriteRule ^index\.php$ - [L]
# RewriteCond %{REQUEST_FILENAME} !-f
# RewriteCond %{REQUEST_FILENAME} !-d
# RewriteRule . /index.php [L]

RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://yuantafood.i-shopping.email/$1 [R=301,L]

</IfModule>
# END WordPress

# Wordfence WAF
<IfModule mod_php5.c>
php_value auto_prepend_file '/var/www/wordpress/wordfence-waf.php'
</IfModule>
<Files ".user.ini">
<IfModule mod_authz_core.c>
Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
Order deny,allow
Deny from all
</IfModule>
</Files>
# END Wordfence WAF

La redirection 301 & 302 a échoué et tous les sites ne peuvent pas être chargés car ERR_TOO_MANY_REDIRECTS.

1
Owen

Supprimez tous les plugins SSL forcés que vous exécutez, rétablissez vos paramètres par défaut dans wp-config.php et .htaccess avant d'appliquer des forces pour utiliser HTTPS. Cela supprimera tous les conflits que vous rencontrez et les boucles de redirection. Après cela, suivez ces étapes:

  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 dans lequel WordPress est installé (la racine) et renommez le dossier enreplace( screenshot )
  3. Naviguez jusqu'au nouveau dossier que vous avez créé dans votre navigateur (ex: http://yuantafood.i-shopping.email/replace) et vous verrez l'outil de recherche/remplacement
  4. Dans les champs "recherchez ...} _" et "remplacez par ...":
    • Remplacer : http://yuantafood.i-shopping.email/ (HTTP, non-SSL)
    • Avec : https://yuantafood.i-shopping.email/ (HTTPS)

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/.

En suivant les étapes ci-dessus, assurez-vous que tous vos liens fonctionnent sur HTTPS. Cependant, vous pouvez également utiliser Supprimer le plug-in HTTP pour vous assurer qu'il n'y a plus de problèmes de contenu mixte.

1

Avez-vous changé les options "Adresse WordPress (URL)" et "Adresse du site (URL)" dans "Paramètres -> Général sur WP-Admin" pour passer de http à https? Vider la cache et vérifier à nouveau? S'il existe encore des protocoles mixtes, cela provient probablement d'URL codées en dur, telles que des images et des liens externes. Vous pouvez le laisser tel quel ou le réparer. Je suis passé par là quand je suis passé à SSL, vous pouvez jeter un coup d’œil à la dernière partie de mon article .

2
hcheung