Zoeken op website

Hoe Nginx te beveiligen met Let's Encrypt op CentOS 8


Let’s Encrypt is in april 2016 opgericht door de Electronic Frontier Foundation (EFF) en is een gratis en geautomatiseerd digitaal certificaat dat gratis TLS-codering voor websites biedt.

Het doel van het Let’s Encrypt-certificaat is het automatiseren van de validatie, creatie, ondertekening en automatische verlenging van het beveiligingscertificaat. Dit certificaat maakt gecodeerde verbindingen met webservers mogelijk die gebruik maken van het HTTPS-protocol op een eenvoudige, probleemloze manier zonder enige complexiteit. Het certificaat is slechts 90 dagen geldig, waarna automatische verlenging kan worden geactiveerd.

Aanbevolen leesmateriaal: Apache beveiligen met Let's Encrypt SSL-certificaat op CentOS 8

In dit artikel laten we zien hoe u Let's Encrypt kunt installeren om een gratis SSL-certificaat te verkrijgen om de Nginx webserver op CentOS 8 te beveiligen ( dezelfde instructies werken ook op RHEL 8). Ook leggen wij u uit hoe u uw SSL-certificaat automatisch kunt verlengen.

Vereisten

Voordat we verder gaan, zorgen we ervoor dat u het volgende onder controle heeft.

1. Een Fully Qualified Domain Name (FQDN) die verwijst naar een speciaal IP-adres van de webserver. Dit moet worden geconfigureerd in het klantengedeelte van uw DNS-webhostingprovider. Voor deze tutorial gebruiken we de domeinnaam linuxtechwhiz die verwijst naar het IP-adres 34.70.245.117.

2. U kunt dit ook bevestigen door een voorwaartse zoekopdracht uit te voeren met behulp van de opdracht dig, zoals weergegeven.

dig linuxtechwhiz.info

3. Nginx geïnstalleerd en actief op de webserver. U kunt dit bevestigen door in te loggen op de terminal en de onderstaande opdracht uit te voeren. Als Nginx niet is geïnstalleerd, volg dan ons artikel om Nginx op CentOS 8 te installeren.

sudo systemctl status nginx

4. U kunt dit ook verifiëren door in een webbrowser naar de URL van de webserver te gaan.

http://server-IP-or-hostname

Aan de URL kunnen we duidelijk zien dat de site niet veilig is en dus niet gecodeerd. Dit houdt in dat alle verzoeken aan de webserver kunnen worden onderschept en dat dit kritische en vertrouwelijke informatie omvat, zoals gebruikersnamen, wachtwoorden, burgerservicenummers en creditcardgegevens, om er maar een paar te noemen.

Laten we nu onze handen vuil maken en Let's Encrypt installeren.

Stap 1. Installeer Certbot in CentOS 8

Om het Let’s Encrypt-certificaat te installeren, moet allereerst certbot geïnstalleerd zijn. Dit is een uitbreidbare client die een beveiligingscertificaat ophaalt van Let’s Encrypt Authority en waarmee u de validatie en configuratie van het certificaat voor gebruik door de webserver kunt automatiseren.

Download certbot met behulp van de curl-opdracht.

sudo curl -O https://dl.eff.org/certbot-auto

Verplaats vervolgens het certificaat naar de map /usr/local/bin.

sudo mv certbot-auto /usr/local/bin/certbot-auto

Wijs vervolgens bestandsrechten toe aan het certbot-bestand, zoals weergegeven.

chmod 0755 /usr/local/bin/certbot-auto

Stap 2. Configureer Nginx-serverblok

Een serverblok in Nginx is het equivalent van een virtuele host in Apache. Door serverblokken in te stellen, kunt u niet alleen meerdere websites op één server opzetten, maar kan Cerbot ook het eigendom van het domein bewijzen aan Certificaatautoriteit – CA.

Voer de weergegeven opdracht uit om een serverblok te maken.

sudo vim /etc/nginx/conf.d/www.linuxtechwhiz.info

Zorg ervoor dat u de domeinnaam vervangt door uw eigen domeinnaam. Plak vervolgens de onderstaande configuratie.

server {
   server_name www.linuxtechwhiz.info;
   root /opt/nginx/www.linuxtechwhiz.info;

   location / {
       index index.html index.htm index.php;
   }

   access_log /var/log/nginx/www.linuxtechwhiz.info.access.log;
   error_log /var/log/nginx/www.linuxtechwhiz.info.error.log;

   location ~ \.php$ {
      include /etc/nginx/fastcgi_params;
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   }
}

Sla het bestand op en sluit de teksteditor af.

Stap 3: Installeer Lets Encrypt-certificaat op CentOS 8

Gebruik nu de opdracht certbot om het ophalen en configureren van het Let's Encrypt-beveiligingscertificaat te initialiseren.

sudo /usr/local/bin/certbot-auto --nginx

Met deze opdracht worden meerdere Python-pakketten en hun afhankelijkheden uitgevoerd en geïnstalleerd, zoals weergegeven.

Dit wordt daarna gevolgd door een interactieve prompt zoals weergegeven:

Als alles goed is gegaan, zou je helemaal aan het einde een felicitatiebericht moeten kunnen zien.

Om te bevestigen dat uw Nginx-site is gecodeerd, laadt u de webpagina opnieuw en bekijkt u het hangslotsymbool aan het begin van de URL. Dit geeft aan dat de site is beveiligd met een SSL/TLS-codering.

Voor meer informatie over het beveiligingscertificaat klikt u op het hangslotsymbool en selecteert u de optie ‘Certificaat’.

Meer informatie over het beveiligingscertificaat wordt weergegeven, zoals hieronder weergegeven.

Om de sterkte van het beveiligingscertificaat te testen, gaat u bovendien naar https://www.ssllabs.com/ssltest/ en vindt u een nauwkeurigere en diepgaandere analyse van de status van het beveiligingscertificaat.

Stap 4. Het Let’s Encrypt-certificaat vernieuwen

Zoals we eerder hebben gezien, is het beveiligingscertificaat slechts 90 dagen geldig en moet het vóór de vervaldatum worden vernieuwd.

U kunt het certificaatvernieuwingsproces simuleren of testen door de opdracht uit te voeren:

sudo /usr/local/bin/certbot-auto renew --dry-run

Conclusie

Dit is de afsluiting van deze tutorial over het beveiligen van Nginx met Let's Encrypt op CentOS 8. Let's Encrypt biedt een effectieve en probleemloze manier om uw Nginx-webserver te beveiligen, wat anders een complexe aangelegenheid zou zijn om handmatig te doen.

Uw site zou nu volledig gecodeerd moeten zijn. Een paar weken voor de vervaldatum van het certificaat zal EFF u via e-mail waarschuwen om het certificaat te vernieuwen om onderbrekingen te voorkomen die kunnen optreden als gevolg van een verlopen certificaat. Dat is alles jongens voor vandaag!