Contenuto misto con SSL, WordPress dietro un proxy inverso
Ho riscontrato problemi di contenuto misto con SSL. Ho richiesto un certificato SSL Let's encrypt per il mio sito WordPress di test dietro un proxy inverso (articaproxy).
Lo stesso certificato SSL è stato installato sia sul server proxy inverso che sul virtual host WordPress.
Il reindirizzamento HTTP/HTTPS del proxy inverso funziona correttamente.
Ho forzato gli URL del sito e home su HTTPS nel database MySQL, per testare HTTPS
Quando apro il mio sito WordPress e clicco su "mostra contenuto bloccato", la console di Chrome mostra 'This page is insecure (broken HTTPS)'.
La console di Chrome segnala anche che alcuni fogli di stile/script/immagini non vengono serviti via HTTPS
Ho provato a installare plugin correlati per risolvere il problema, senza successo. Quindi sono disattivati.
L'area di amministrazione di WordPress non si carica, a causa di ERR_TOO_MANY_REDIRECTS
Vorrei sapere come risolvere i problemi di contenuto misto e i troppi reindirizzamenti nella pagina di login di amministrazione.
Sono benvenuti suggerimenti.
****************** Aggiornamento ***********************
Vorrei fornire maggiori dettagli sulle impostazioni del mio sito WordPress di test.
Parti dei valori in wp-config.php relativi a 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';
Valori 'siteurl' e 'home' dal campo wp_options nel database WordPress:
https://yuantafood.i-shopping.email
https://yuantafood.i-shopping.email
Come commentato sopra, riesco ad accedere alla pagina wp-admin solo con il mio indirizzo IP interno. Il tentativo di accesso a wp-admin con IP esterno/FQDN non carica, a causa dell'errore: ERR_TOO_MANY_REDIRECTS.
Cercando molti post, forzare SSL con .htaccess sembra aver funzionato per altri per risolvere i problemi di contenuto misto.
Ho provato molti metodi per modificare .htaccess, principalmente reindirizzamento permanente 301 e temporaneo 302.
Valori del file .htaccess nella cartella 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
Sia il reindirizzamento 301 che 302 hanno fallito, causando l'impossibilità di caricare il sito a causa di ERR_TOO_MANY_REDIRECTS.

Hai modificato gli indirizzi "WordPress Address (URL)" e "Site Address (URL)" in Impostazioni -> Generale su WP-Admin da http a https? Hai svuotato la cache e verificato nuovamente? Se ci sono ancora protocolli misti, probabilmente provengono da URL hardcoded come immagini e link esterni. Puoi lasciarli così come sono o correggerli. Ho affrontato questa situazione quando sono passato a SSL, puoi dare un'occhiata alla parte finale del mio articolo.

Grazie per la risposta.
Dato che ho forzato i campi siteurl e home nella tabella wp_options con il valore 'https://yuantafood.i-shopping.email'
Gli indirizzi "WordPress Address (URL)" e "Site Address (URL)" nelle Impostazioni sono testo grigio: http://imgur.com/C4ajdBx
Ho svuotato la cache e controllato nuovamente, il problema del contenuto misto rimane.
Posso accedere alla pagina di amministrazione solo con l'indirizzo IP interno. Che non è affetto da ERR_TOO_MANY_REDIRECTS: http://imgur.com/YBrUess
Grazie per l'articolo, Why No Padlock è un sito molto utile.
Impostare la regola per reindirizzare HTTP a HTTPS in .htaccess funziona per altri, ma non per me.

Rimuovi tutti i plugin force SSL che stai utilizzando, ripristina le impostazioni predefinite nei file wp-config.php
e .htaccess
prima di forzare l'uso di HTTPS. Questo eliminerà tutti i conflitti che stai riscontrando e i loop di reindirizzamento. Dopodiché, segui questi passaggi:
- Vai e scarica lo script di ricerca e sostituzione del database di Interconnect IT qui
- Decomprimi il file e posiziona la cartella nella root del tuo sito WordPress, quindi rinomina la cartella in
replace
(screenshot) - Naviga nella nuova cartella che hai creato tramite il browser (es:
http://yuantafood.i-shopping.email/replace
) e vedrai lo strumento di ricerca/sostituzione - Nei campi "cerca…" e "sostituisci con…":
- Sostituisci:
http://yuantafood.i-shopping.email/
(HTTP, non-SSL) - Con:
https://yuantafood.i-shopping.email/
(HTTPS)
- Sostituisci:
Puoi cliccare il pulsante dry run sotto azioni per vedere cosa verrà sostituito prima di eseguire lo script. Una volta terminato, assicurati di rimuovere la cartella /replace/
.
Seguendo i passaggi sopra indicati, tutti i tuoi link dovrebbero funzionare in HTTPS. Tuttavia, puoi anche utilizzare il plugin Remove HTTP per assicurarti che non ci siano più problemi di contenuto misto.

Ciao~ Ho eseguito lo script Search & Replace Script DB in precedenza.
Seguendo i tuoi passaggi, l'ho eseguito nuovamente.
È molto sorprendente che il valore:'http://yuantafood.i-shopping.email/' sia ancora presente nella tabella wp_wfHits!
Vengono generati automaticamente? qui ci sono i miei screenshot dopo aver eseguito search & replace.
Grazie a te, il numero di contenuti misti è sceso a 1. E il fastidioso ERR_TOO_MANY_REDIRECTS è scomparso dal link esterno della pagina wp-admin :)
contenuto misto: wp-emoji-release.min.js

@Owen Andando avanti, non dovresti riscontrare più richieste HTTP dal tuo sito poiché sono tutte aggiornate. Se stai usando un plugin di cache, assicurati di svuotare la cache sia dal tuo sito che dal browser. Stai usando il plugin Remove HTTP?

Grazie! Con tutto il vostro aiuto, sto procedendo bene. Come posso svuotare la cache dal sito WordPress? Sto usando il plugin Remove HTTP come suggerito da Ethan, dopo aver attivato e disattivato il test Remove HTTP, ha ridotto i contenuti misti a 1. Elenco dei miei plugin attualmente attivati.

@Owen Non sembra che nessuno di quei plugin causi problemi. Se digito manualmente https://yuantafood.i-shopping.email
si caricherà con SSL senza problemi. Questo significa che la tua domanda è stata risolta. Per evitare che questo thread si sovraccarichi di commenti e diventi fuori tema, clicca il segno di spunta accanto alla mia risposta e apri una nuova domanda su come forzare il tuo sito a utilizzare HTTPS (SSL).

Dopo aver letto un articolo del blog di PIOTR KUNICKI. Ho seguito le istruzioni per rimuovere Emoji. (Dovrai rifarlo, dopo che la versione del tuo tema attivo verrà aggiornata.)
Funziona! Il lucchetto verde appare senza avvisi. (anche se ci sono alcuni avvisi di contenuto misto nella pagina wp-admin.)
Il prossimo passo, vorrei forzare tutti gli URL HTTP a reindirizzare a quelli HTTPS. Qualche suggerimento per me perfavore :)

@Owen Sono contento che metà del problema sia risolto. Crea un nuovo thread di domanda o cerca una domanda precedente. Prova a cercare come "forzare ssl" o "forzare https".

Ho semplicemente seguito un altro commento da @thaevok. Aggiungere $_SERVER['HTTPS'] = 'on'; al file wp-config.php ha funzionato per me. Ora, l'http reindirizza perfettamente a https.
