Website voorzien van HTTPS en Let’s Encrypt SSL Certificaat

      Reacties uitgeschakeld voor Website voorzien van HTTPS en Let’s Encrypt SSL Certificaat

Website voorzien van HTTPS en Let’s Encrypt SSL Certificaat

In het kader van security en data beveiliging wordt HTTPS op een website steeds belangrijker.
Https in combinatie met een geldig SSL certificaat geeft zekerheid over de authenticiteit van de website.
In de meeste gevallen kost een SSL certificaat geld, maar voor eenvoudige websites biedt Let’s Encrypt bijvoorbeeld gratis certificaten aan.
Hoe je zo’n certificaat installeert op een Debian 8 (jessie) Linux Webserver, laten we in dit artikel zien.

Wat is een certificaat ?

Een certificaat moet je zien als een sleutel voor een slot.
Alleen als je de juiste sleutel (certificaat) hebt, kun je het slot openen zodat je de data kunt zien.
Wanneer je géén geldig certificaat hebt, kun je het verkeer wel onderscheppen, maar dit is alleen maar abracadabra als je dit probeert te lezen.
Maar om een certificaat te kunnen gebruiken die wereldwijd bekend is, moet je een certificaat bemachtigen bij een Certificate Authority.
Dat is de instantie, het top orgaan zeg maar zoals bijvoorbeeld Comodo, die geldige “sleutels” uitdeelt die wereldwijd door browsers geaccepteerd worden.
Wanneer je op een https website zit met een geldige sleutel, dan kun je dit aan de adresbalk zien dat er een groen slotje bij het adres staat.
De verbinding is dan veilig. Gebruik je https en krijg je een waarschuwing bij het openen van de site ?
Kijk dan uit ! De website kan dan gehijacked zijn of in sommige gevallen is het certificaat niet op tijd vernieuwd.

Wat heb je nodig ?

Wij gebruiken in dit artikel een Webserver gebaseerd op Debian Linux 8 (Jessie) met Apache en MySQL
Een mooie kant en klare oplossing hiervoor is Turnkey Linux LAMP Stack !
Maar wanneer je over een andere webserver beschikt dan is het raadzaam om je te verdiepen in de materie op de Let’s Encrypt website.
Het is misschien niet veel of heel erg moeilijk werk, maar je kunt je website er mee om zeep helpen !

Om een SSL Certificaat te kunnen krijgen voor onze Linux Webserver moeten we een softwarepakket installeren genaamd Certbot
Certbot regelt verder alles, de CSR, aanvraag, integratie in Apache etc. Supermakkelijk en heel snel !

Als 2e heb je natuurlijk een geldig domein nodig.
En in de DNS moeten er records aanwezig zijn die naar je website wijzen.

Aan de slag !

Afhankelijkheden installeren

Om Certbot goed te laten functioneren, zijn er wat afhankelijkheden nodig.
Deze moeten eerst toevoegen in de Apt Sources.
Log met Putty in op je Linux webserver en ga naar /etc/apt/sources.list.d
Voeg daar de volgende regel toe in het bestand sources.list met je favoriete text editor :

deb http://ftp.debian.org/debian jessie-backports main

Sla het bestand op en doe daarna een Apt update met het volgende commando :

apt-get update

Nu kunnen er uit de nieuwe repo de benodigde dependancies geinstalleerd worden.

Certbot Installeren

Nu kunnen we Certbot installeren. Dit doen we met slechts 1 commando :

apt-get install python-certbot-apache -t jessie-backports

Als dit klaar is, kunnen we certificaten aanvragen.
Om een nieuw certificaat aan te vragen dient je webserver dus goed ingericht te zijn.
Dat betekend dus dat je Apache installatie werkt en up-to-date is, je vhost configuratie met toewijzingen van domeinnamen etc. ingericht is en dat je website goed werkt.

Als dit allemaal goed staat, gebruik je het volgende commando om een certificaat aan te vragen :

certbot –apache

Onderstaand schermpje verschijnt dan :

Lets encrypt inrichten 01

Om voor 1 website een certificaat aan te vragen, typ je het nummer van de naam in. als je op alle websites een certificaat wilt installeren vul je niets in en druk je op Enter.

Vervolgens zie je allerlei meldingen op het scherm verschijnen en als Certbot klaar is, vraagt deze hoe je SSL wilt gebruiken.
1. HTTP en HTTPS gebruiken (Je website draait op zowel http als https)
2. Alleen HTTPS (Je website is enkel via HTTPS te bereiken)

Mocht je een bestaande website hebben, denk er dan aan dat je alle harde koppelingen met HTTP aanpast naar HTTPS ! anders werkt je website niet meer.

Geef aan welke optie je wilt gebruiken en het certificaat zal dan geinstalleerd worden.
Dit wordt dan bevestigd en je bent klaar !

Om te testen ga je dus naar https://www.jouwwebsite.nl en moet je nu een groen slotje kunnen zien in de adres regel :

Lets encrypt inrichten 02

Je hebt nu een SSL geactiveerde en werkende website !

Puntje van aandacht !

Let’s Encrypt certificaten zijn maar 3 maanden geldig en zullen dus na 3 maand vernieuwd moeten worden.
Waarschijnlijk zit je hier niet op te wachten om elke 3 maanden, als je er al aan denkt, het certificaat te vernieuwen.

Gelukkig kan Certbot dit ook automatiseren.
Hiervoor maken we een Cronjob aan, een taakplanner die automatisch geplande taken kan uitvoeren.
Dit doen we door het volgende commando te gebruiken :

crontab -e

Onderstaand schermpje verschijnt dan.
Druk dan op de letter i (om tekst te inserten) en voeg de gele regel toe :
Deze regel zorgt er voor dat elke dag om 0:00 uur wordt gecontroleerd of de certificaten al bijna verlopen.
Verlopen deze bijna, dan worden de certificaten automatisch vernieuwd.

Toe te voegen regel :

0 0 * * * /usr/bin/certbot renew

Lets encrypt inrichten 03

Als je de regel hebt toegevoegd, druk je op ESC en vervolgens druk je op : en dan gevolgd door wq (Write & Quit) en dan bevestigen met Enter

De tekst editor sluit dan en je ziet de melding : crontab: installing new crontab

Vanaf nu wordt elke dag de certificaat controle automatisch uitgevoerd en indien nodig vernieuwd.

Logging kun je bekijken in /var/log/letsencrypt
Komende dagen is het aan te raden om het log te bekijken of er foutmeldingen in staan.
Maar als je op je webserver de e-mail ook ingericht hebt, kun je ook mails laten sturen door Cron.
Je hoeft dan niet zelf te zoeken in de logging, maar ziet in 1 oogopslag wat er gebeurd :

Lets encrypt inrichten 05

Je website testen

Wil je testen of de SSL beveiliging van je website goed in orde is ?
Test deze dan bij SSL Labs, Kies Test your Server en voer je website in.
Het testen neemt even tijd in beslag en uiteindelijk krijg je onderstaand scherm :

Lets encrypt inrichten 04

Je ziet dat https://www.icttipsandtricks.nl een A classificatie krijgt waarmee de site dus prima in orde is !
Gebruik je privacy gevoelige data ? Dan is het aan te raden om voor een betaald, “zwaarder” certificaat te gaan met een nog hogere beveiliging.
Gratis certificaten zijn hiervoor namelijk niet geschikt !
Maar voor een blog, met leuke, interessante tips en trucs zoals icttipsandtricks.nl is een Let’s Encrypt certificaat prima geschikt.