Direct naar de inhoud

Cookie-instellingen

Kies per soort welke cookies je toestaat. Je kunt je keuze altijd wijzigen via Cookie-instellingen onderaan elke pagina. Privacyverklaring

Noodzakelijk

Altijd aan

Nodig om in te loggen, je winkelwagen te bewaren en je keuzes te onthouden. Deze staan altijd aan.

Welke cookies?
  • weboke_sessie, weboke_klant, weboke_remember: je sessie en ingelogd blijven
  • weboke_basket: je winkelwagen
  • wkBtwIncl: prijzen met of zonder btw tonen
  • wok_cookies: je cookiekeuze, 12 maanden

Meet welke advertentie tot een bezoek of bestelling leidt, zodat we niet betalen voor advertenties die niets doen.

Welke cookies?
  • Google Ads via Google Tag Manager (_gcl_au, _gcl_aw), tot 90 dagen
  • OpenAI Ads, advertenties in ChatGPT
  • wok_aff: via welke partner je bij ons kwam (affiliateprogramma), 60 dagen

4,6

Land en taal

Elk land heeft zijn eigen site, met prijzen en btw van dat land.

Bekijken

Module 3 · 3.1

https en het certificaat

Module 3: Adres, https en gebruikers · Leestijd: 8 minuten

Leerdoel: Na deze les kun je een WordPress-site volledig op https zetten en weet je wat het WordPress-adres en het siteadres doen.

Kernbegrippen: TLS, certificaat, Let's Encrypt, automatische verlenging, WordPress-adres (siteurl), siteadres (home), WP_HOME en WP_SITEURL, HSTS, buitengesloten raken

Wat https doet

Met https gaat alles tussen browser en server versleuteld: wachtwoorden, formulieren, cookies, ook gewone pagina's. Zonder https kan iedereen op hetzelfde netwerk (een openbare wifi, een gekaapte router) meelezen en zelfs de pagina veranderen. Browsers tonen een site zonder https als "niet veilig" en sommige functies (zoals locatie of de camera) werken alleen met https.

De versleuteling heet TLS. Om te bewijzen dat de browser echt met example.com praat en niet met een tussenpersoon, heeft de server een certificaat: een digitaal bewijs, ondertekend door een uitgever die browsers vertrouwen. Het certificaat noemt de namen waarvoor het geldt en tot wanneer.

Gratis certificaten en verlengen

Let's Encrypt geeft gratis certificaten uit. Bijna elke hoster vraagt ze automatisch aan en verlengt ze ook automatisch. Een certificaat van Let's Encrypt is nu 90 dagen geldig, en Let's Encrypt heeft aangekondigd die geldigheid stap voor stap in te korten naar 45 dagen. Met de hand verlengen is daarom geen optie: het moet automatisch.

Een betaald certificaat versleutelt niet beter. Het verschil zit in extra controle van de organisatie (en soms een garantie). Voor de meeste sites is een gratis certificaat prima.

Waar je op let:

  • Het certificaat moet elke naam dekken die een bezoeker kan typen: example.com én www.example.com. Ook de naam die alleen doorstuurt, want de browser controleert het certificaat vóór de doorsturing.
  • Automatisch verlengen lukt alleen als de DNS naar je server wijst. Heb je de DNS verhuisd of een proxy (zoals Cloudflare) ervoor gezet, controleer dan of de verlenging nog werkt.
  • Een CAA-record in de DNS kan bepalen welke uitgevers certificaten mogen maken. Staat Let's Encrypt daar niet in, dan mislukt de aanvraag (DNS-cursus les 5.2).

Twee adressen in WordPress

Onder Instellingen > Algemeen staan twee adressen. Ze lijken overbodig dubbel, maar ze betekenen iets anders:

VeldIn de databaseBetekenis
WordPress-adres (URL)siteurlWaar de bestanden van WordPress staan (wp-admin, wp-includes)
Siteadres (URL)homeHet adres dat bezoekers gebruiken

Meestal zijn ze gelijk, bijvoorbeeld allebei https://example.com. Ze verschillen alleen als WordPress in een submap staat maar de site op de hoofdmap moet verschijnen.

WordPress maakt met deze adressen alle links: naar pagina's, stylesheets, afbeeldingen, het beheer. Staat hier http://, dan bouwt WordPress pagina's met http://-links, ook als de bezoeker via https binnenkomt. Dat geeft gemengde inhoud (les 3.2) en doorsturingen heen en weer.

Een site naar https zetten

Heb je een bestaande site op http, dan zijn dit de stappen:

  1. Certificaat aanvragen voor beide namen en controleren dat https://example.com werkt (je ziet dan een WordPress-pagina, misschien nog zonder opmaak).
  2. Back-up maken (les 8.1).
  3. Beide adressen onder Instellingen > Algemeen op https:// zetten en opslaan. Je wordt uitgelogd; log opnieuw in via https.
  4. Oude links in de inhoud omzetten van http://example.com naar https://example.com. Doe dat met een hulpmiddel dat geserialiseerde gegevens begrijpt, zoals wp search-replace of een zoek-en-vervangplugin (les 3.2), nooit met een kale SQL-opdracht.
  5. Doorsturen: laat de webserver alle verzoeken op http met een 301 naar https sturen (les 3.2). Veel hosters hebben daar een vinkje voor; anders een paar regels in .htaccess.
  6. Controleren met de opdracht van deze les en die van les 3.2.

Buitengesloten: als het adres fout staat

Typ je bij de adressen een tikfout (htps://, een verkeerd domein), dan stuurt WordPress je na het opslaan naar dat foute adres. Je kunt het beheer niet meer bereiken. Geen paniek, er zijn twee uitwegen:

Via wp-config.php. Zet boven de regel "stop met bewerken":

define( 'WP_HOME', 'https://example.com' );
define( 'WP_SITEURL', 'https://example.com' );

Deze regels gaan voor de waarden in de database. De velden in Instellingen > Algemeen worden dan grijs. Log in, zet de juiste waarden in de database, en haal de regels weer weg (of laat ze bewust staan, dan kan niemand de adressen per ongeluk via het beheer wijzigen).

Via phpMyAdmin. Open de tabel wp_options en pas de waarden van siteurl en home aan.

HSTS: de browser laten onthouden

Met de kopregel HSTS (Strict-Transport-Security) zegt de server tegen de browser: "kom hier de komende tijd alleen nog via https." De browser zet daarna zelf elk http:// om naar https://, zonder eerst een onbeveiligd verzoek te doen.

Strict-Transport-Security: max-age=31536000; includeSubDomains

HSTS is een goede extra stap, maar met een waarschuwing: een browser die HSTS heeft gezien, weigert de site daarna zonder geldig certificaat te openen, ook niet met "toch doorgaan". Met includeSubDomains geldt dat voor elk subdomein. Heb je een subdomein zonder certificaat (bijvoorbeeld een oud intern systeem), dan is dat na HSTS onbereikbaar. Begin daarom met een korte max-age (bijvoorbeeld een dag, 86400), controleer alles, en verleng dan.

In de praktijk: zo ziet het eruit in een paneel

Als voorbeeld gebruiken we DirectAdmin. In cPanel heet het onderdeel SSL/TLS Status (AutoSSL), in Plesk SSL/TLS Certificates.

  1. Open SSL-certificaten bij je domein en kies Gratis en automatisch certificaat van Let's Encrypt.
  2. Vink example.com en www.example.com aan en vraag het certificaat aan.
  3. Zet bij de domeininstellingen het vinkje om bezoekers altijd naar https te sturen (bij DirectAdmin: Forceer SSL met https omleiding). Gebruik maar één manier van doorsturen: twee verschillende tegelijk kunnen een rondje geven ("te veel omleidingen").
  4. Ga in WordPress naar Instellingen > Algemeen en zet beide adressen op https://.

Samenvatting

  • https versleutelt alles tussen browser en server; het certificaat bewijst wie de server is.
  • Gratis certificaten van Let's Encrypt zijn kort geldig en worden automatisch verlengd; ze moeten elke naam dekken die een bezoeker typt.
  • WordPress-adres (siteurl) en siteadres (home) moeten allebei op https:// staan.
  • Sta je buitengesloten door een fout adres, herstel het met WP_HOME en WP_SITEURL in wp-config.php of in phpMyAdmin.
  • HSTS is een goede extra stap; begin met een korte geldigheid.

Quiz

1. Je site werkt op https, maar in Instellingen > Algemeen staan beide adressen nog op http://. Wat merk je?



2. Je hebt per ongeluk een tikfout in het siteadres opgeslagen en komt niet meer in het beheer. Wat helpt?



3. Waarom moet het certificaat ook www.example.com dekken als die naam alleen doorstuurt naar example.com?



4. Wat is het risico van HSTS met een lange max-age en includeSubDomains?



Opdracht

Opdracht A3.1: Klopt je certificaat? Vul het adres van je site in. Het programma maakt een TLS-verbinding met de kale naam en met www (als die bestaat) en controleert: is het certificaat geldig en vertrouwd, dekt het beide namen, is het langer dan 14 dagen geldig, en stuurt de site een HSTS-kopregel? Ontbreekt HSTS, dan is dat oranje met uitleg, geen fout.

Opdracht A3.1: Klopt je certificaat?


Wat je invult en wat we vinden, slaan we niet op. Je browser onthoudt je antwoorden en of je de opdracht hebt gehaald. Ben je aangemeld, dan bewaren we alleen dat je de opdracht (bijna) goed had in Mijn cursussen; daar kun je het ook verwijderen.

Verder lezen

Deze artikelen beschrijven de stappen in de panelen van WebOké; in andere panelen werken ze vergelijkbaar.

Even geduld…

Stel je domeinen in

Regel per domein de nameservers, de koppeling aan je hosting en wie de eigenaar wordt.

Je domeinen laden…