Conținut mixt cu SSL, WordPress în spatele unui proxy invers
Am întâmpinat probleme de conținut mixt cu SSL. Am solicitat un certificat SSL Let's Encrypt pentru site-ul meu de test WordPress care rulează în spatele unui proxy invers (articaproxy).
Același certificat SSL a fost implementat atât pe serverul proxy invers, cât și pe gazda virtuală WordPress.
Redirecționarea HTTP/HTTPS din proxy invers funcționează corect.
Am forțat URL-urile siteurl și home să folosească HTTPS în baza de date MySQL pentru a testa HTTPS.
Când deschid site-ul WordPress și apăs "show block content", consola Chrome afișează 'This page is insecure (broken HTTPS)'.
Consola Chrome raportează și că unele fișiere de stil/script/imagini nu sunt servite prin HTTPS
Am încercat să instalez plugin-uri pentru a remedia problema, dar fără succes. Așa că le-am dezactivat.
Zona de administrare WordPress nu poate fi încărcată din cauza erorii ERR_TOO_MANY_REDIRECTS.
Aș dori să știu cum să rezolv problemele de conținut mixt și redirecționările multiple la pagina de login pentru administrare.
Sugestiile sunt binevenite.
****************** Actualizare ***********************
Vreau să ofer mai multe detalii despre setările site-ului meu de test WordPress.
Părți din valorile wp-config.php legate de 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';
Valorile 'siteurl' și 'home' din tabelul wp_options în baza de date WordPress:
https://yuantafood.i-shopping.email
https://yuantafood.i-shopping.email
După cum am menționat, pot accesa pagina wp-admin doar cu adresa IP internă. Încercările de conectare la wp-admin folosind IP/FQDN extern nu funcționează din cauza erorii: ERR_TOO_MANY_REDIRECTS.
După ce am căutat pe Google, forțarea SSL prin .htaccess pare să funcționeze pentru alții pentru a rezolva problemele de conținut mixt.
Am încercat și eu diverse metode de editare a .htaccess, în principal redirecționare permanentă 301 și temporară 302.
Conținutul fișierului .htaccess din folderul 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
Atât redirecționarea 301 cât și 302 au eșuat și au făcut ca întregul site să nu se încarce din cauza ERR_TOO_MANY_REDIRECTS.
Ai modificat adresa "WordPress Address (URL)" și "Site Address (URL)" din Setări -> General în WP-Admin de la http la https? Golește cache-ul și verifică din nou? Dacă încă există protocoale mixte, probabil provin din URL-uri hardcodate precum imagini și link-uri externe. Poți să le lași așa sau să le corectezi. Am trecut prin asta când am trecut la SSL, poți arunca o privire la partea finală a articolului meu.

Mulțumesc pentru răspuns.
Deoarece am forțat câmpurile siteurl și home în tabelul wp_options cu valoarea 'https://yuantafood.i-shopping.email'
"Adresa WordPress (URL)" și "Adresa site (URL)" din Setări sunt text gri: http://imgur.com/C4ajdBx
Am făcut flush la cache și am verificat din nou, problema conținutului mixt persistă.
Pot să mă loghez în pagina de administrare doar cu adresa IP internă. Care nu este afectată de ERR_TOO_MANY_REDIRECTS: http://imgur.com/YBrUess
Mulțumesc pentru articol, Why No Padlock este un site foarte util.
Setarea regulii de redirecționare HTTP la HTTPS în .htaccess funcționează pentru alții, nu și pentru mine.

Elimină toate plugin-urile care forțează SSL pe care le rulezi, revino la setările implicite în fișierele wp-config.php
și .htaccess
înainte de a aplica forțarea HTTPS. Acest lucru va elimina toate conflictele și buclele de redirecționare pe care le ai. După aceea, urmează acești pași:
- Descarcă Interconnect IT's Database Search & Replace Script de aici
- Dezarhivează fișierul și plasează folderul în directorul rădăcină al WordPress-ului tău, apoi redenumește folderul în
replace
(captură de ecran) - Accesează noul folder creat în browser (ex:
http://yuantafood.i-shopping.email/replace
) și vei vedea instrumentul de căutare/înlocuire - În câmpurile "search for…" și "replace with…":
- Înlocuiește:
http://yuantafood.i-shopping.email/
(HTTP, non-SSL) - Cu:
https://yuantafood.i-shopping.email/
(HTTPS)
- Înlocuiește:
Poți să apeși butonul dry run din secțiunea actions pentru a vedea ce va fi înlocuit înainte de a executa scriptul. După ce ai terminat, asigură-te că elimini folderul /replace/
.
Urmând pașii de mai sus ar trebui să te asiguri că toate linkurile tale rulează pe HTTPS. Totuși, poți folosi și plugin-ul Remove HTTP pentru a te asigura că nu mai ai probleme de conținut mixt.

Salut~ Am rulat scriptul Search & Replace înainte.
Urmând pașii tăi, l-am rulat din nou.
Este foarte surprinzător că valoarea: 'http://yuantafood.i-shopping.email/' încă poate fi găsită în tabela wp_wfHits!
Sunt generate automat? aici este captura mea de ecran după rularea căutării și înlocuirii.
Mulțumesc ție, numărul de conținut mixt a scăzut la 1. Și enervantul ERR_TOO_MANY_REDIRECTS a dispărut de pe linkul extern al paginii wp-admin :)
conținut mixt: wp-emoji-release.min.js

@Owen De acum înainte, nu ar trebui să mai întâmpini cereri HTTP de pe site-ul tău, deoarece toate au fost actualizate. Dacă folosești vreun plugin de cache, asigură-te că ștergi cache-ul de pe site-ul tău și din browser. Folosești pluginul Remove HTTP?

Mulțumesc! Cu toată ajutorul vostru, sunt pe drumul cel bun. Cum pot șterge cache-ul de pe site-ul WordPress? Folosesc pluginul Remove HTTP așa cum a sugerat Ethan. După activarea și dezactivarea testului Remove HTTP, am redus conținutul mixt la 1. Lista pluginurilor mele activate în prezent.

@Owen Nu pare că vreunul dintre acele plugin-uri ar cauza probleme. Dacă introduc manual https://yuantafood.i-shopping.email
se va încărca cu SSL fără probleme. Asta înseamnă că întrebarea ta a fost rezolvată. Pentru a preveni ca acest thread să fie supraîncărcat cu comentarii și să devieze de la subiect, dă click pe bifa de lângă răspunsul meu și deschide o nouă întrebare despre cum să forțezi site-ul tău să folosească HTTPS (SSL).

După ce am citit un articol de blog de PIOTR KUNICKI. Am urmat instrucțiunile pentru eliminarea Emoji. (Va trebui să faci asta din nou după ce versiunea temei tale active este actualizată.)
Funcționează! Lacătul verde apare fără avertismente. (deși există câteva avertismente de conținut mixt pe pagina wp-admin).
Următorul pas ar fi să forțez toate URL-urile HTTP să se redirecționeze către HTTPS. Aveți sugestii pentru mine vă rog :)

@Owen Mă bucur că jumătate din problemă este rezolvată. Creează un nou thread de întrebare sau caută o întrebare anterioară. Încearcă să cauți cum să "forțezi ssl" sau "forțează https".

Am urmat un alt comentariu de la @thaevok. Adăugarea $_SERVER['HTTPS'] = 'on'; în wp-config.php a funcționat pentru mine. Acum, http redirecționează perfect către https.
