NeuBlack Friday – 50 % Rabatt auf die erste Zahlung
WordPress-Fehlerbehebung

Mixed Content Warnungen auf einer HTTPS-Site

Die Seite kam über HTTPS an und bat dann um etwas über HTTP. Browser blockieren die aktiven Teile und lassen das Vorhängeschloss für den Rest fallen.

Mixed Content: The page at 'https://example.com/' was loaded over HTTPS, but requested an insecure resource 'http://example.com/…'.

Kurzantwort

Die Browserkonsole nennt die genauen beleidigenden URLs — beginnen Sie dort, nicht mit einem Plugin. Die meisten von ihnen sind absolute http://-Links, die von einem Editor in Post-Inhalten gespeichert wurden, der sie vor der Zertifikatsvorlage gespeichert hat, und die dauerhafte Korrektur ist ein Suchersatz in der Datenbank und nicht ein Filter, der die Ausgabe für immer neu schreibt.

Diagnose

Die wahrscheinlichsten Ursachen zuerst.

Gehen Sie die Liste der Reihe nach durch. Prüfen Sie jede Ursache, bevor Sie etwas ändern, da die Lösungen unterschiedlich sind und eine Vermutung mehr Zeit kostet als ein Befehl.

UrsacheSo prüfen Sie esLösung
http:// URLs, die in Post-Inhalten gespeichert sindDie Seite Quelle ansehen und nach "http://" suchen, gefolgt von Ihrer eigenen Domain.Führen Sie einen Datenbanksuchersatz über die Inhaltstabellen aus. Tun Sie dies mit einem Tool, das serialisierte Daten versteht, weil Widget- und Metawerte brechen, wenn die Zeichenfolge naiv bearbeitet wird.
siteurl und home sagen immer noch httpWenn beide Optionen mit http://, beginnen, erstellt WordPress seine eigenen Asset-URLs daraus und jede Seite erbt das Problem.Aktualisieren Sie beide Optionen auf das https:// Formular. Alles, was WordPress generiert – Skripte, Stile, kanonische Tags – wird aus diesen beiden Werten abgeleitet.
WordPress kann nicht sagen, dass es hinter TLS stehtis_ssl() gibt false auf einer Site zurück, die über HTTPS eindeutig bedient wird. Dies ist die Signatur einer Reverse-Proxy-Termination, die TLS Upstream beendet.Vertrauen Sie dem weitergeleiteten Protokoll-Header, bevor WordPress lädt, also antwortet is_ssl() korrekt. Ohne ihn erzeugt WordPress weiterhin http:// Links, egal was die Datenbank sagt.
Ein Hardcoded Third Party AssetDie blockierte URL befindet sich auf der Domain eines anderen – einer Schriftart, einem Skript, einem eingebetteten Player – mit einem expliziten http://Schema.Ändern Sie es in https:// im Theme oder im embed. Wenn der Remote-Host kein Zertifikat hat, muss das Asset selbst gehostet oder abgelegt werden; es gibt keine Möglichkeit, es sicher zu laden.
Anleitung

Schritt für Schritt zur Lösung.

Die Befehle setzen WP-CLI und Shell-Zugriff voraus. Jeder Schritt erklärt, was er tut, damit Sie ihn bei Bedarf im Dashboard oder per SFTP ausführen können.

  1. Holen Sie sich die Liste aus dem Browser, nicht aus einer Vermutung

    Öffnen Sie die Konsole auf einer fehlerhaften Seite. Jeder Mixed-Content-Eintrag benennt die Ressource, und das Muster über sie identifiziert normalerweise sofort die Quelle.

  2. Überprüfen Sie, was WordPress denkt, dass seine eigene Adresse ist

    Diese beiden Optionen befinden sich unter allem anderen, so dass sie es wert sind, bestätigt zu werden, bevor Sie Inhalte ändern.

    wp option get siteurl
    wp option get home
  3. Speicherte URLs sicher umschreiben

    Das Überspringen der GUID-Spalte ist absichtlich: Es ist eine Kennung, kein Link, und das Ändern von ihr benachrichtigt Feed-Reader erneut.

    wp search-replace 'http://example.com' 'https://example.com' --skip-columns=guid --dry-run
    wp search-replace 'http://example.com' 'https://example.com' --skip-columns=guid
  4. Teach WordPress – es steckt hinter TLS

    Fügen Sie diese oberhalb der Zeile "Bearbeiten stoppen" in wp-config.php hinzu, wenn ein Proxy das Zertifikat beendet.

    if ( ! empty( $_SERVER['HTTP_X_FORWARDED_PROTO'] )
         && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https' ) {
        $_SERVER['HTTPS'] = 'on';
    }
  5. Spülung und erneute Überprüfung

    Das zwischengespeicherte HTML enthält die alten URLs. Löschen Sie es, laden Sie es dann mit geöffneter Konsole neu und bestätigen Sie, dass die Liste leer ist.

    wp cache flush
Mit MagicWP

Darum kümmert sich die Plattform.

TLS endet am Proxy und die nginx der Site übergibt das weitergeleitete Protokoll an PHP, so dass is_ssl() korrekt ist, ohne eine wp-config.php-Bearbeitung und WordPress generiert https:// links von der ersten Anforderung. Zertifikate werden automatisch ausgestellt und erneuert, was die Situation beseitigt, aus der dieser Fehler normalerweise herauswächst: eine Site, die monatelang auf http lief und absolute Links akkumulierte.

Häufige Fragen

Häufige Fragen.

Kann ich einfach ein Plugin verwenden, das URLs am Ausgang neu schreibt?
Es funktioniert und verbirgt das Problem, anstatt es zu entfernen. Jede Seite zahlt dann für einen Ersatz von Zeichenfolgen, und die gespeicherten Daten bleiben falsch — an dem Tag, an dem das Plugin deaktiviert wird, bricht die Seite wieder ab.
Warum ist nur ein Bild kaputt, wenn alles andere in Ordnung ist?
Dieses Bild wurde mit einer absoluten http://URL eingefügt, während der Rest als Relativ- oder https-Links hinzugefügt wurde.
Das Vorhängeschloss ist da, aber die Konsole beschwert sich immer noch.
Beides. Browser blockieren aktive gemischte Inhalte wie Skripte und Iframes, aber oft erlauben sie passive Inhalte wie Bilder mit einem heruntergestuften Indikator.
Muss ich auch http zu https umleiten?
Die Korrektur von gemischten Inhalten stoppt eine sichere Seite, die unsichere Vermögenswerte anfordert; eine Umleitung verhindert, dass jemand die unsichere Seite erreicht.
Verwandte Fehler

War es keiner davon?

Diese Fehler können im Browser ähnlich aussehen.