Websites

HTTPS inschakelen: gemengde inhoudswaarschuwingen oplossen

When SSL is active but the browser padlock is missing, broken or showing a warning, the cause is almost always mixed content: the page itself is encrypted but something on it is still being fetched…

Gemengde inhoud waarschuwingen verhelpen na het inschakelen van HTTPS

Wanneer SSL actief is maar het browserslotje ontbreekt, beschadigd is of een waarschuwing toont, is de oorzaak bijna altijd gemengde inhoud: de pagina zelf is gecodeerd maar er wordt nog steeds iets via gewone HTTP opgehaald. Deze gids legt uit waarom dit gebeurt, hoe je elke problematische resource vindt en hoe je het correct verhelpt in plaats van er een lapmiddel op toe te passen.

Wat gemengde inhoud is

Een browser beschouwt een pagina alleen als veilig als de pagina en alles wat erop wordt geladen via HTTPS is aangekomen. Als een HTTPS-pagina een afbeelding, script, stylesheet, lettertype of iframe van een http://-adres ophaalt, markeert de browser dit.

Browsers verdelen dit in twee categorieën, en ze gedragen zich heel anders:

  • Actieve gemengde inhoud: scripts, stylesheets, iframes en XHR. Browsers blokkeren deze volledig. Lay-outs vallen in elkaar, sliders stoppen, formulieren stoppen met verzenden. Dit is het destructieve soort.
  • Passieve gemengde inhoud: afbeeldingen, audio en video. Deze laden meestal nog steeds, maar het slotje wordt gedowngradeerd of verwijderd.

Een site kan daarom er volledig goed uit zien en toch zijn slotje verliezen, of er beschadigd uitzien zonder duidelijke fout op de pagina zelf.

Waarom dit gebeurt na het inschakelen van SSL

SSL inschakelen verandert hoe je site wordt aangeboden. Het verandert niet wat erin is opgeslagen.

WordPress schrijft absolute URL's in de database, dus een site die enige tijd op HTTP heeft gedraaid, heeft http://-adressen opgeslagen in:

  • Bericht- en pagina-inhoud, inclusief elke afbeelding die via de editor is ingevoegd.
  • Records van media-bijlagen.
  • Instellingen van thema-customizer en thema-opties.
  • Widget-inhoud en blokkerginstellingen.
  • Plugin-instellingen, met name page builders en slider-plugins.
  • De opties siteurl en home.

Geen hiervan wordt automatisch bijgewerkt. SSL inschakelen en je dan afvragen waarom het slotje beschadigd is, is een van de meest voorkomende ondersteuningsvragen, en dit is waarom.

Stap 1: HTTPS afdwingen op de server

Voordat je de database aanraakt, zorg er voor dat elke bezoeker in eerste instantie op HTTPS terechtkomt.

  1. Meld u aan bij KPanel en klik op Websites in de linkernavigatie.
  2. Klik op je site.
  3. Open Settings.
  4. Onder Behavior, schakel Force HTTPS in.
  5. Klik op Save Changes.

Force HTTPS-instelling voor een site in KPanel

Elke HTTP-aanvraag wordt nu op serverniveau naar HTTPS omgeleid, voordat je site wordt uitgevoerd.

Force HTTPS verwerkt inkomende aanvragen. Het herschrijft geen URL's die al in je database zijn opgeslagen, dus op zichzelf zal het een gemengde inhoudswaarschuwing veroorzaakt door een hardcoded http://-afbeelding niet opheffen. Je hebt zowel dit als Stap 2 nodig.

Als SSL nog niet actief is, of het certificaat ziet er verkeerd uit, begin dan met SSL Certificates.

Stap 2: De opgeslagen URL's herschrijven

Dit is de oplossing die gemengde inhoud daadwerkelijk oplost.

  1. Open de site, vervolgens het WordPress-tabblad, vervolgens de Quick Actions-sectie.
  2. Zoek de Search & Replace-kaart en klik op Configure.
  3. Voer in Find (old value) http://yourdomain.co.nz in.
  4. Voer in Replace with https://yourdomain.co.nz in.
  5. Laat Dry run (preview only, no changes) aangevinkt en klik op Preview.
  6. Controleer de telling en de tabel-voor-tabel uitsplitsing.
  7. Vink Dry run uit, klik op Run, en bevestig.

Automatisch wordt een volledige back-up gemaakt voordat de vervanging plaatsvindt, en elke tabel is opgenomen, ook die door plugins zijn gemaakt. Geserialiseerde plugin- en themainstellingen worden correct verwerkt.

Dit niet doen met een SQL-query in phpMyAdmin. WordPress slaat plugin- en themainstellingen op als geserialiseerde strings die de lengte van elke waarde registreren, dus een ruwe REPLACE() breekt ze en de instellingen worden op de achtergrond geleegd gereset. Er is geen reparatie zonder het herstellen van een back-up. De volledige uitleg staat in Running a Search and Replace.

Als je abonnement de console omvat, is de gelijkwaardige opdracht:

search-replace 'http://yourdomain.co.nz' 'https://yourdomain.co.nz' --all-tables --dry-run

Zet --dry-run uit om het toe te passen, en maak eerst zelf een back-up: de console doet dat niet.

Stap 3: Elke cache wissen

Een cached kopie van een pagina blijft de oude HTTP-URL's lang nadat de database is gerepareerd aanleveren, wat is waarom mensen vaak denken dat de vervanging niet heeft gewerkt.

  1. WordPress, vervolgens Quick Actions, vervolgens Flush Cache.
  2. WordPress, vervolgens Caching, vervolgens Purge cache, als de full page cache is ingeschakeld.
  3. Performance, vervolgens Kapsule CDN, vervolgens Purge, als de CDN is ingeschakeld. Zie Purging the CDN Cache.
  4. Elke cache-plugin, van zijn eigen instellingenscherm.
  5. Je eigen browser. Test in een privévenster zodat je niet door je eigen cache wordt misleid.

Stap 4: Vind wat achterblijft

De meeste sites zijn schoon na Stap 2. Wanneer een waarschuwing overblijft, zoek dan de exacte resource in plaats van te gokken.

Browserconsole. Open ontwikkelaarsgereedschappen met F12, ga naar het tabblad Console, en laad opnieuw. Gemengde inhoud verschijnt als een expliciete waarschuwing met daarin de volledige URL van de problematische resource. Die URL vertelt je welke plugin of welk thema verantwoordelijk is.

Network-tabblad. Filter op http:// om elke onveilige aanvraag die de pagina heeft gedaan op te sommen.

Paginabron. Laad de pagina, bekijk bron, en zoek naar http://. Negeer alles wat in xmlns-attributen en schema-declaraties staat: dit zijn identifiers, geen aanvragen.

Veelvoorkomende overgebleven elementen en wat je er aan kunt doen:

Wat je vindtReparatie
Een afbeelding of logo in een thema-customizer instellingUpload of selecteer het opnieuw in de customizer
Een page builder module met een getypte http:// afbeeldings-URLBewerk die module en corrigeer de URL
Een slider plugin's eigen instellingentabelSla de slider opnieuw op, of voer de search and replace uit met --all-tables
Een lettertype of script van een third-party domeinControleer of de provider HTTPS aanbiedt. De meeste doen dat nu. Zet de URL over
Een tracking pixel of embed van een oude leverancierAls de leverancier geen HTTPS heeft, verwijder het. Het is een verbroken afhankelijkheid, niet een Kapsule-probleem
Hardcoded http:// in een thema-templatebestandBewerk de template, of beter nog, gebruik https of een protocol-relatieve verwijzing

Indien exact één pagina wordt beïnvloed en de rest van de site schoon is, dan is de schuldige inhoud op die pagina, niet een site-brede instelling. Open het in de editor en kijk welke media het insluit.

Bevestig dat het is opgelost

  1. Laad de site in een privévenster.
  2. Het slotje moet stevig zijn, zonder waarschuwingsdriehoek en geen doorgestreepte aanwijzing.
  3. Klik op het slotje. De browser meldt dat de verbinding veilig is zonder gemengde inhoudswaarschuwing.
  4. Open de console en laad nog eens opnieuw. Nul gemengde inhoudswaarschuwingen.
  5. Controleer een diepere pagina, niet alleen de homepage: een binnenlandse pagina, een blogbericht met afbeeldingen, en de checkout in een winkel.

Voorkomen dat het terugkomt

  • Laat Force HTTPS aanstaan. Het is een instelling van één regel die een hele klasse problemen elimineert.
  • Typ nooit een volledige http:// URL in inhoud. Gebruik de mediabibliotheek, die nu HTTPS-adressen opslaat.
  • Controleer plugin-instellingen na het installeren van alles dat om een URL vraagt.
  • Let op een terugkerende waarschuwing na een plugin-update. Sommige plugins zetten hun eigen opgeslagen URL's opnieuw.
  • Voer de search and replace opnieuw uit na elke migratie, omdat een geïmporteerde database de URL's van de oude host meebrengt: Migrating a Website From cPanel.

Probleemoplossing

Het slotje is prima voor mij, kapot voor een collega. Gecacheerde pagina. Laat hen opnieuw laden in een privévenster.

De site is volledig beschadigd na de vervanging. Herstel de automatische pre-run back-up: Restoring From a Backup.

De console toont een gemengde inhoudswaarschuwing op een domein dat niet van mij is. Een resource van derden. Je kunt hun server niet repareren: ofwel ondersteunen ze HTTPS en zet je de URL over, ofwel verwijder je de resource.

Alles is HTTPS maar de site laadt helemaal niet. Dat is geen gemengde inhoud. Begin met Website Not Loading en controleer het certificaat op SSL Certificates.

Indien je dit alles hebt doorgewerkt en de waarschuwing blijft bestaan, stuur een e-mail naar support@kapsulehost.com met de betreffende URL en de exacte tekst van de browserconsole waarschuwing.

Nog steeds hulp nodig?

Stuur ons een e-mail op support@kapsulehost.com of open een chat in KPanel.

KPanel openen
HTTPS inschakelen: gemengde inhoudswaarschuwingen oplossen