Veelvoorkomende fouten

Mixed content-waarschuwing oplossen na het installeren van SSL

Mixed content-waarschuwing oplossen na het installeren van SSL
Foto: Ivan Radic — CC BY 2.0 · Flickr

Uw site is beveiligd, maar laadt nog onderdelen die dat niet zijn

Mixed content ontstaat wanneer een pagina die via het beveiligde https wordt geladen, zelf nog onderdelen ophaalt via het onbeveiligde http — een afbeelding, een script, een stylesheet. De browser toont dan een waarschuwing (soms een doorgestreept slotje, soms een expliciete melding dat niet alle content veilig is) en kan de onveilige onderdelen zelfs stilzwijgend blokkeren, waardoor afbeeldingen ineens niet meer laden of opmaak wegvalt. Dit probleem duikt vrijwel altijd op ná het installeren van een SSL-certificaat: de site draait dan technisch op https, maar oudere content in de database of thema-instellingen verwijst nog met een vaste, absolute http-link naar zichzelf.

De onderliggende onderdelen opsporen

Open de ontwikkelaarstools van uw browser (rechtermuisknop > Inspecteren) en bekijk het tabblad Console: daar meldt de browser exact welke bestanden nog via http worden opgevraagd. Let op dat dit probleem zich soms alleen op specifieke pagina's voordoet, niet per se overal op de site — controleer daarom meerdere paginatypes (homepage, een artikel, een productpagina) afzonderlijk, en vergeet ook pagina's opgebouwd met een aparte pagebuilder niet, omdat die soms hun eigen, losse afbeeldingsverwijzingen opslaan buiten de gewone contentvelden om.

Drie stappen om het structureel op te lossen

Stap 1: vervang harde http-verwijzingen

Zoek in uw database en thema-bestanden naar `http://` in combinatie met uw eigen domeinnaam en vervang dit door `https://`, of nog beter, door een relatieve link (bijvoorbeeld `/afbeeldingen/foto.jpg` in plaats van een volledig adres met protocol). Gebruik bij een WordPress-database bij voorkeur een dedicated tool zoals Better Search Replace in plaats van een losse SQL-query, omdat WordPress veel gegevens serialized opslaat en een directe tekstvervanging die structuur kan beschadigen, met beschadigde pagina's als gevolg.

Stap 2: forceer https

Zodra alle mixed content is opgelost, dwingt u af dat de site altijd via https wordt bezocht door in het `.htaccess`-bestand een doorverwijzing van http naar https toe te voegen. Dit voorkomt dat bezoekers via een oude, opgeslagen http-link alsnog op de onbeveiligde versie belanden.

Stap 3: voeg een beveiligingsheader toe

Als extra vangnet kunt u de header `Content-Security-Policy: upgrade-insecure-requests` toevoegen. Deze zorgt ervoor dat de browser resterende http-verzoeken automatisch naar https omzet, zodat een enkele over het hoofd geziene verwijzing niet meteen weer tot een waarschuwing leidt.

Tools die het zoekwerk versnellen

Naast de ontwikkelaarstools van de browser bestaan er gratis onlinetools die uw hele site in één keer scannen op mixed content, zodat u niet elke pagina afzonderlijk hoeft te controleren. Een SSL-controletool (zoals SSL Labs) beoordeelt daarnaast de certificaatconfiguratie als geheel, wat nuttig is om te zien of eventuele waarschuwingen echt aan mixed content liggen of aan iets anders in de SSL-opzet, zoals een verouderd of onvolledig geïnstalleerd certificaat. Gebruikt u een CDN-dienst zoals Cloudflare, dan bieden veel van die diensten een instelling die http-verwijzingen automatisch naar https omzet voordat ze de bezoeker bereiken — een praktische extra laag bovenop het structureel oplossen van de bron zelf, maar geen vervanging daarvoor.

Waarom dit vaak samenvalt met andere problemen

Mixed content is een van de minder voor de hand liggende oorzaken van afbeeldingen die niet laden, en komt vaak voor kort na het herstellen van een verlopen SSL-certificaat of het voor het eerst installeren van SSL. Neem een mixed content-check daarom standaard op na elke wijziging aan uw certificaat of domeininstellingen, in plaats van te wachten tot een bezoeker de waarschuwing meldt. Ook na het overzetten van content vanuit een oudere versie van de site, of na het importeren van artikelen uit een ander systeem, is een korte controle op verdwaalde http-verwijzingen aan te raden.

Veelgestelde vragen

Blokkeert elke browser mixed content op dezelfde manier?
Nee. De meeste moderne browsers blokkeren actieve content zoals scripts standaard, maar tonen bij passieve content zoals afbeeldingen vaak alleen een waarschuwing zonder te blokkeren. Het verschilt per browser en per contenttype.
Is het gevaarlijk om mixed content te negeren?
Het risico zit vooral in scripts: die kunnen worden onderschept en gemanipuleerd omdat ze onversleuteld worden geladen. Bij afbeeldingen is het risico kleiner, maar het blijft een teken van een onvolledige overstap naar https en tast het vertrouwen van bezoekers aan.