1. Home
  2. Knowledge Base
  3. Hosting
  4. Maak met een SSL-certificaat je website echt veilig

Maak met een SSL-certificaat je website echt veilig

Hoe zorg je ervoor dat je website veilig is? In dit artikel vertel ik je nog één ding dat je moet weten als je voor het eerst je eigen WordPress website gaat maken. Dat is de installatie van een SSL-certificaat op je website en waar je mee te maken kunt krijgen als je dit niet meteen bij het begin doet. Vragen die beantwoord worden, zijn:

  1. Wat is SSL?
  2. Wat doet het?
  3. Hoe installeer je een SSL-certificaat?
  4. Wat is mixed content?
  5. En hoe los je dit op?

Laat ik direct beginnen door uit te leggen wat SSL is. Is het je weleens opgevallen dat veel websites in de adresbalk voor de domeinnaam een icoon van een slotje hebben? Dit icoon geeft aan dat de data uitwisseling via de website versleuteld is met SSL. SSL staat voor ‘Secure Sockets Layer’ (letterlijk vertaald: beveiligde ingangslaag). Simpel gezegd, is het een internationaal erkende techniek die het mogelijk maakt om een geverifieerde en versleutelde internetverbinding te maken tussen computers in een netwerk. Daardoor kan data veilig worden verstuurd. In 1999 is SSL overgegaan in TLS (Transport Layer Security), maar deze technologie wordt nog steeds SSL of SSL/TLS genoemd.

Veilige data uitwisseling

SSL zorgt dus voor een veilige data uitwisseling tussen je website en de computer van je bezoekers. Dit is belangrijk als bezoekers persoonlijke informatie invoeren, bijvoorbeeld op een contactformulier, bij een aanmelding voor je blog of nieuwsbrief, bij een betaling in je webshop, of bij het inloggen op een account op je website. Nog een manier waarop je een website met een SSL-verbinding kunt herkennen, is door te kijken naar de domeinnaam in de adresbalk. Als de website een beveiligde SSL-verbinding heeft, dan wordt de domeinnaam voorafgegaan door de letters ‘HTTPS’. HTTPS staat voor ‘Hypertext Transfer Protocol Secure’ en is de opvolger van de minder veilige HTTP, wat voor ‘Hypertext Transfer Protocol’ staat.

SSL-certificaat

Voor een SSL-verbinding is een SSL-certificaat nodig. De meeste webhostings verstrekken een gratis SSL-certificaat zodra je een domeinnaam bij hen registreert. Er zijn verschillende soorten SSL-certificaten. Op z’n minst vermelden ze gegevens over de certificaathouder (in dit geval jij), de domeinnaam, de instantie die het certificaat uitgeeft, het land waarin het is uitgegeven en de geldigheidsduur. De duur van een certificaat varieert tussen de 3 maanden en enkele jaren, en wordt meestal automatisch verlengd.

Er zijn dus gratis certificaten, maar ook betaalde certificaten die in prijs variëren tussen € 10,00 en ongeveer € 3.000,00. Dat is nogal een verschil en dat zit in de mate van validatie die bij het certificaat hoort. Zo heb je certificaten met alleen domein validatie (Domain Validation), organisatie validatie (Organisation Validation) en uitgebreide validatie (Extended Validation). Hoe uitgebreider de validatie, hoe uitgebreider je aan kunt tonen dat het certificaat bij jouw domeinnaam hoort en dat jij de eigenaar van die domeinnaam bent. Als je domeinnaam nog geen SSL-certificaat heeft, dan raad ik je aan om dit alsnog te regelen. Ten eerste is het veiliger, ten tweede zijn bezoekers eerder geneigd je website te vertrouwen en ten derde geven zoekmachines je website een hogere waardering.

Hoe installeer je een gratis SSL-certificaat?

De makkelijkste manier om aan een SSL-certificaat te komen, is via je webhosting. Daar kun je er gratis een van Let’s Encrypt installeren. Waarschijnlijk staat op de website van je webhosting al een instructie, maar ik leg je nu in 4 stappen uit hoe je een gratis certificaat installeert op je website.

Stap 1

Login op de beheeromgeving van je webhosting, bijvoorbeeld Direct Admin of cPanel. Zelf gebruik ik Direct Admin en daar is mijn volgende uitleg op gebaseerd, maar de handelingen in cPanel zijn niet heel anders. Als je ingelogd bent in Direct Admin, selecteer je eerst je domeinnaam. Vervolgens scrol je een klein beetje naar beneden tot je bij ‘Advanced Features’ bent. Daar klik je op ‘SSL Certificates’.

Stap 2

Je komt nu op de SSL-Certificaat pagina uit. Klik hier bij de optie om een Let’s Encrypt certificaat aan te vragen op ‘Aanvragen’.

Stap 3

Na korte tijd, ongeveer 1 minuut, zie je op het scherm dat de domeinnaam een certificaat heeft gekregen en dat er een status is toegekend.

Stap 4

Ga nu terug naar het hoofdscherm van Direct Admin en klik onder ‘Your Account’ op ‘Domain Setup’. Klik hier op je domeinnaam en je ziet twee vensters. Als in het tweede venster het onderste bolletje niet geselecteerd is, dan selecteer je deze alsnog door erop te klikken. Klik vervolgens op ‘Save’ en daarna op ‘OK’ in de melding die daarna verschijnt. Nu is je SSL-certificaat geïnstalleerd.

Zodra je volgens deze stappen het certificaat hebt geïnstalleerd, doe je er goed aan om de rest van deze aflevering te lezen, ook als je dit hebt gedaan op een bestaande website. Je moet namelijk een aantal dingen aanpassen in de backend van je website om ervoor te zorgen dat de SSL-verbinding wordt gerealiseerd.

Wil je in plaats hiervan een betaald certificaat installeren? Dat kan. Hoe je dat doet, verschilt per webhosting. Daarom adviseer ik je om daarmee contact op te nemen of daar in de handleidingen of instructies te kijken. Het komt meestal op het volgende neer: je plaatst de inhoud van .crt bestand, dat je van de uitgevende instantie hebt ontvangen, onder de zogenaamde ‘private key’. Deze inhoud sla je op. Vervolgens ga je de root en intermediate certificaten installeren en als laatste sla je deze certificaten op.

Hulp nodig? Aarzel niet om me te contacteren!

Mixed content gaat niet goed samen

In ieder geval is het handig om het SSL-certificaat te installeren voor je het thema verder gaat uitwerken. Ben je al met het ontwerp van de website bezig geweest en heb je pas daarna het certificaat geïnstalleerd? Of heb je het certificaat geïnstalleerd op een bestaande website omdat die nog geen had? Dan kun je te maken krijgen met foutmelding van mixed content. Wat betekent dit? Als je een website maakt, creëer je inhoud (content) die geladen wordt zodra iemand het webadres van je website invoert. Als een deel van deze content gecreëerd is via een HTTP-verbinding en de rest via een HTTPS-verbinding, zijn er twee soorten content die geladen moeten worden. Vandaar de naam mixed content, oftewel ‘gemengde content’ van HTTP en HTTPS. Anders dan bij Duo Penotti gaat deze mixed content niet goed samen, waardoor je website niet goed geladen kan worden.

Hoe los je het op?

Gelukkig is dit vrij eenvoudig op te lossen met een zoek- en vervangopdracht, waarbij je overal HTTP verandert in HTTPS. Hierdoor worden alle oude HTTP URL’s vervangen (updaten) door HTTPS URL’s. Je kunt hiervoor de Velvet Blues plug-in gebruiken. Daarna pas je ook de WordPress URL en de website URL aan. Dit kan in het configuratiebestand dat je gebruikte om de MySQL database te vullen bij de handmatige WordPress installatie. Maar het kan ook bij de algemene instellingen in het WordPress dashboard. Verder raad ik je aan om de zogenaamde ‘force SSL’ code toe te voegen in je configuratiebestand. Deze forceert een SSL-verbinding. De code geef ik je hieronder. Die kun je simpelweg kopiëren en plakken.

/* SSL */
define( 'FORCE_SSL_LOGIN', true );
define( 'FORCE_SSL_ADMIN', true );

Naast het uitvoeren van de zoek- en vervangopdracht, ga je doen wat je ook hebt gedaan bij het vullen van de MySQL database. Daarvoor heb je Filezilla of Cyberduck nodig. Je voegt dan een bestand toe met een ‘find and replace data script’ om het oude script te vervangen. Direct nadat dit is uitgevoerd, moet je het bestand wel verwijderen om hacking van je database te voorkomen. Vind je dit moeilijk of loop je ergens tegenaan? Neem dan gerust contact met me op.

Ik ben nieuwsgierig! Heeft dit artikel je goed geholpen?

Support nodig?

Niet gevonden waar je naar op zoek bent? Of kom je er nou echt niet uit? Je kan mij altijd een berichtje sturen met je vraag. Ik ben er voor je.
Help mij!