Ein fehlendes Schloss auf einer Website mit gültigem Zertifikat bedeutet gemischte Inhalte: Die Seite kam über https, etwas darin nicht. Der Browser blockiert oder stuft herab, und das Schloss verschwindet.

An einer Stelle finden

Die Konsole nennt die genaue URL. Zu raten, welches Bild es ist, kostet weit mehr Zeit, als sie zu öffnen.

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

Woher es meistens kommt

  • Absolute http://-URLs in der Datenbank - geschrieben, als die Website noch http war, und nie aktualisiert.
  • Eine fest eingetragene Skript- oder Schrift-URL im Theme.
  • Eine Einbettung - eine Karte, ein Video, ein Widget -, deren Anbieter noch auf http läuft.

Die Datenbank in Ordnung bringen

wp search-replace 'http://yourdomain.com' 'https://yourdomain.com' --all-tables --precise
Sichern Sie vor einem Suchen-und-Ersetzen. Es schreibt jede Tabelle neu, und serialisierte Daten kann ein naives Ersetzen zerstören - nehmen Sie ein Werkzeug, das Serialisierung versteht, so wie wp search-replace es tut.

Den Rest abfangen

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">

Das weist den Browser an, http-Unterressourcen stattdessen über https zu holen. Es ist ein Netz für das, was Sie nicht in der Hand haben, kein Ersatz dafür, die eigenen URLs zu korrigieren - hat die Gegenseite kein https, scheitert die Ressource.

Protokollrelativ bevorzugen? Nein

//example.com/x.js war die alte Antwort und gilt heute als schlechter Stil: Auf einer lokal über file:// geöffneten Seite bricht es, und es verbirgt, welches Protokoll gemeint ist. Schreiben Sie https:// ausdrücklich.

Laden Sie nach der Korrektur hart neu. Der Browser merkt sich sein Urteil über die Seite und zeigt das kaputte Schloss weiter aus dem Cache.