Introductie
Let’s Encrypt is een Certificate Authority (CA) die de mogelijkheid bied om gratis TLS/SSL certificaten te genereren, hierdoor kan je dus HTTPS gebruiken op je website.
In dit kennisbank artikel ga ik je uitleggen hoe je Nginx beveiligt met Let's Encrypt op Ubuntu 16.04 of 18.04.

Benodigdheden
Een Ubuntu 16.04 of 18.04 VPS of Dedicated Server.

Een domeinnaam. We gebruiken voorbeeld.nl als voorbeeld in deze uitleg.
Je hebt dus een A record nodig voor voorbeeld.nl die wijst naar het IP van je VPS of Dedicated Server.
En je hebt een A record nodig voor www.voorbeeld.nl die wijst naar het IP van je VPS of Dedicated Server.

Je moet ook Nginx geïnstalleerd hebben staan op je VPS of Dedicated Server.

Stap 1 - Certbot installeren
We gaan Certbot gebruiken om het certificaat te genereren, deze zul je dus eerst moeten installeren.

Eerst moet je de 'repository' toevoegen, dit doe je door het volgende commando uit te voeren in je SSH:
sudo add-apt-repository ppa:certbot/certbot
Dan kan je de Certbot package installeren met het volgende commando:
sudo apt install python-certbot-nginx
Certbot is nu geïnstalleerd op je VPS of Dedicated Server!

Het is nu ook handig om te verifiëren of je nginx configuratie goed staat.
In de nginx config zou in dit geval het volgende sowieso moeten staan: server_name voorbeeld.nl www.voorbeeld.nl;

Stap 2 - HTTPS toestaan in je firewall

We gebruiken de ingebouwde firewall van Ubuntu 16.04/18.04 (ufw).
Je kan checken of die aan staat door het volgende commando te typen:
sudo ufw status
Als er Status: inactive uit komt moet je eerst sudo ufw enable typen, dit zorgt er voor dat je firewall wordt geactiveerd.

Om Nginx HTTPS (beveiligd) en HTTP (onbeveiligd) toe te laten op je server voer je het volgende commando uit:
sudo ufw allow 'Nginx Full'
Nu ben je klaar om de certificaten te genereren!

Stap 3 - Een certificaat genereren
Om een certificaat te genereren kan je het volgende commando gebruiken. (Let wel op dat je dan je eigen domeinnamen moet invullen.)
sudo certbot --nginx -d voorbeeld.nl -d www.voorbeeld.nl
Als er geen fouten optreden komt er het volgende uit:
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

Als je 2: Redirect kiest zal Certbot alles voor je instellen en zorgen dat alle bezoekers gelijk HTTPS gebruiken.

Daarna zal je een bericht krijgen dat je certificaat succesvol is opgeslagen:
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/voorbeeld.nl/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/voorbeeld.nl/privkey.pem
Your cert will expire on 2019-11-01. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. To non-interactively renew *all* of
your certificates, run "certbot renew"
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- If you like Certbot, please consider supporting our work by:

Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le


Stap 4 - Certbot autorenewal
Certbot stelt automatisch in dat je certificaten vernieuwd zullen worden, om dit te testen kan je nog het volgende commando uitvoeren:
sudo certbot renew --dry-run
Als er geen error uit komt is alles goed gelukt! Mocht er toch nog een error uit komen kan je een ticket aanmaken op https://royalehosting.nl/submitticket.php.
Was dit artikel behulpzaam ?
annuleren
Dank je wel !