Hoe beveilig ik NGINX met Let's Encrypt op mijn Ubuntu 18.04/20.04 VPS?

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 18.04 of 20.04.

Benodigdheden 

Een Ubuntu 18.04 of 20.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 18.04/20.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.

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 in ons klanten paneel.


Was dit artikel behulpzaam?

mood_bad Nee 4
mood Ja 9
visibility Weergaven: 114