Ein Zertifikat deckt die ganze Website ab, ein Schloss, das auf einer einzelnen Seite verschwindet, ist also nie das Zertifikat. Diese Seite lädt mindestens eine Sache über blankes http, und deswegen stuft der Browser die Anzeige herab.

An einer Stelle finden

Öffnen Sie auf dieser Seite die Konsole. Die Warnung über gemischte Inhalte nennt die genaue URL. Das ist die ganze Diagnose - der Rest ist die Frage, woher die URL kam.

Oder vom Server aus finden

curl -sS https://yourdomain.com/that-page | grep -oE 'http://[^"[:space:]]+' | sort -u | head -20

Woher es meistens kommt

  • Ein Bild oder eine Einbettung, vor Jahren mit voller http-Adresse in den Inhalt geklebt.
  • Ein Theme oder Plugin, das aus einer gespeicherten Option eine absolute URL baut.
  • Eine Website-URL-Einstellung, die noch als http gespeichert ist.
  • Ein fremdes Widget - eine Karte, ein Chatfenster, eine Schrift -, das über http angeboten wird.
SELECT ID, post_title FROM wp_posts
 WHERE post_content LIKE '%http://yourdomain.com%' LIMIT 20;

SELECT option_name FROM wp_options WHERE option_value LIKE '%http://yourdomain.com%';

Den Inhalt reparieren, nicht das Symptom

Schreiben Sie gespeicherte http-Links auf https um - oder besser auf einen Pfad ganz ohne Host, damit derselbe Inhalt auf Staging und in Produktion funktioniert.

UPDATE wp_posts
   SET post_content = REPLACE(post_content, 'http://yourdomain.com', 'https://yourdomain.com')
 WHERE post_content LIKE '%http://yourdomain.com%';
Sichern Sie die Datenbank vor diesem UPDATE und führen Sie zuerst das SELECT aus, damit Sie wissen, wie viele Zeilen sich ändern sollten. Ein REPLACE, das zehnmal mehr Zeilen anfasst als erwartet, ist ein Muster, das zu weit gefasst war.

Das ganze Bild, mitsamt Weiterleitungen und Headern, steht in Gemischte Inhalte nach der Umstellung auf HTTPS.