Je website beveiligen met https - Hoe en waarom

Niet alleen complexe websites met veel privégegevens, maar ook eenvoudige blogs verdienen extra bescherming middels https. Dankzij het geautomatiseerde proces van Let’s Encrypt kan dit kosteloos en zonder al te veel moeite. Wil je je website beveiligen met https? Zo ga je ermee aan de slag.

Steeds meer websites schakelen over naar versleutelde verbindingen via https. Het is een stuk veiliger voor bezoekers maar ook voor jezelf, als beheerder van een pagina. Het ‘gewone’ http-verkeer kan immers gemakkelijk afgeluisterd en gemanipuleerd worden. Bij https ‘praat’ de browser vrijwel zeker rechtstreeks met de webserver. Al het verkeer gaat door de veilige tunnel. Wie denkt dat een eenvoudige blog geen bescherming behoeft heeft het mis. Zo zijn er bijvoorbeeld partijen, waaronder enkele Amerikaanse internetproviders, die advertenties in websites ‘injecteren’. Bij https worden ze buitenspel gezet.

Google doet er alles aan om websitebouwers te bewegen over te stappen naar https. Zo heeft de populaire Chrome-browser een duidelijke voorkeur voor https-verkeer. Ook beloont Google je met een betere ranking, al weegt het op dit moment nog niet zwaar mee in de resultaten. Het bedrijf stond ook aan de basis van het nieuwe internetprotocol http/2 dat voor een flinke snelheidswinst zorgt. Je hoeft ook niet bang te zijn voor hoge kosten. Het populaire Let’s Encrypt verstrekt gratis certificaten die je via een tool bovendien zeer eenvoudig kunt installeren, activeren en vernieuwen. Genoeg redenen dus om voor het felbegeerde groene slotje te zorgen.

Certificaten

Er bestaan diverse certificaten. De eenvoudigste is een self-signed certificaat. Voor testdoeleinden is het een prima optie. Zo’n certificaat is ondertekend door de persoon die hem heeft gemaakt en niet door een vertrouwde autoriteit. Browsers geven daardoor een waarschuwing. Dit voorkom je met een certificaat dat is ondertekend door een certificaatautoriteit (ca). Deze uitgever moet door de browser als betrouwbaar worden beschouwd, anders verschijnt alsnog een waarschuwing.

Een browser wordt standaard met een aantal certificaten geleverd. Het is een hiërarchische structuur of vertrouwensketen, die begint bij een root-certificaat en via tussenliggende of intermediate-certificaten uiteindelijk uitkomt bij jouw eigen certificaat. Naast commerciële aanbieders als Thawte en Symantec zijn er ook partijen die gratis certificaten verstrekken, waaronder Let’s Encrypt. Het heeft een eigen root-certificaat, ISRG Root X1, dat op het moment alleen nog in de laatste versie van Firefox is opgenomen.

Het duurt normaliter zo’n drie tot zes jaar voordat een nieuw root-certificaat wordt vertrouwd en populaire browsers hiervan zijn voorzien. Tot die tijd zijn de certificaten die het uitgeeft gebaseerd op een tussenliggend certificaat dat is ondertekend door partner IdenTrust, dat reeds een aantal vertrouwde root-certificaten bezit (waaronder DST Root CA X3).

DomainSSL

Zoek je een ondertekend certificaat, dan is een Domain Validated (dv) certificaat – ook wel DomainSSL genoemd – de eenvoudigste en goedkoopste optie. Ze zijn geschikt voor iedere server die via een domeinnaam werkt, waaronder natuurlijk een webserver.

Zoals bij ieder certificaat moet je via een validatieproces aantonen dat je er recht op hebt. Bij dit type certificaat is dat eenvoudig: er is alleen een controle nodig dat je de domeinnaam bezit. Dat kan eenvoudig en zelfs automatisch, zoals Let’s Encrypt laat zien. Naast dv-certificaten zijn er ook andere certificaten, waarvan Extendended Validation (EV) certificaten de interessantste zijn. Daarbij wordt de identiteit van de aanvrager uitvoeriger gecontroleerd. Als bonus wordt ook de bedrijfsnaam in de adresbalk getoond achter het groene slotje.

Zoals bij ieder certificaat moet je via een validatieproces aantonen dat je er recht op hebt

-

Certificaat aanvragen

Het normale proces voor het aanvragen van een certificaat is vrij omslachtig. Het begint met het genereren van een sleutelpaar. Als sleutelgrootte is 2048 bit momenteel de standaard en ook meer dan toereikend. Het sleutelpaar dat je aanmaakt omvat een privésleutel en publieke sleutel. De privésleutel houd je geheim en blijft op de server staan. De publieke sleutel wordt samengevoegd in een csr (Certificate Signing Request) samen met enkele andere gegevens over je organisatie en de domeinnaam. Die csr creëer je op de server en deel je vervolgens (online) met de certificaatautoriteit.

Hierna krijg je het uiteindelijke certificaat. Dit certificaat installeer je op de server, in een map die niet toegankelijk is via het web. Een certificaat zegt alleen iets over het vertrouwensniveau. Het staat los van de parameters, zoals het gebruikte algoritme, van de uiteindelijke communicatie. Die parameters worden per verbinding in een ‘handshake’ afgesproken tussen je server en de browser van de bezoeker. Het is wel belangrijk dat je voor een correcte en veilige configuratie van de webserver zorgt.

Webserver configureren

Heb je het certificaat ontvangen dan dien je alleen nog je webserver, bijvoorbeeld Apache, in te stellen voor het gebruik van het certificaat. Ook moet je verschillende parameters opgeven voor de configuratie van het protocol Transport Layer Security (tls), voorheen bekend als ssl. Dat protocol is verantwoordelijk voor de versleuteling. Het is een vrij complex protocol en daarmee lastig te configureren.

De Mozilla SSL Configuration Generator kan een goede hulp zijn. Je geeft aan wat voor webserver (bijvoorbeeld Apache of Nginx) en software je gebruikt waarna je een werkende configuratie krijgt. De hele overstap van http naar https is al met al wel vrij gecompliceerd, wat vermoedelijk de belangrijkste reden is dat nog steeds veel websites het zonder die versleuteling doen. Gelukkig maakt Let’s Encrypt het een stuk eenvoudiger. Daar gaan we in een later artikel wat dieper op in.

Deel dit artikel
Voeg toe aan favorieten