Sådan sikres Nginx med Let's Encrypt på CentOS 8


Let’s Encrypt blev grundlagt i april 2016 af Electronic Frontier Foundation (EFF) og er et gratis og automatiseret digitalt certifikat, der giver TLS-kryptering til websteder overhovedet ingen omkostninger.

Formålet med Let's Encrypt-certifikat er at automatisere validering, oprettelse, signering samt automatisk fornyelse af sikkerhedscertifikatet. Dette certifikat muliggør krypterede forbindelser til webservere ved hjælp af HTTPS-protokollen på en enkel og problemfri måde uden nogen kompleksitet. Certifikatet er kun gyldigt i 90 dage, hvor automatisk fornyelse kan aktiveres.

Anbefalet læsning: Sådan sikres Apache med Lad os kryptere SSL-certifikat på CentOS 8

I denne artikel vil vi demonstrere, hvordan du kan installere Lad os kryptere for at få et gratis SSL-certifikat til at sikre Nginx-webserveren på CentOS 8 (samme instruktioner fungerer også på RHEL 8). Vi vil også forklare dig, hvordan du fornyer dit SSL-certifikat automatisk.

Før vi fortsætter med at sikre, at du har følgende i skak.

1. Et fuldt kvalificeret domænenavn (FQDN), der peger på en dedikeret IP-adresse på webserveren. Dette skal konfigureres i klientområdet hos din DNS-webhosting-udbyder. Til denne vejledning bruger vi domænenavnet linuxtechwhiz , der peger på IP-adressen 34.70.245.117.

2. Du kan også bekræfte dette ved at foretage et opslag fremad ved hjælp af gravekommandoen som vist.

$ dig linuxtechwhiz.info

3. Nginx installeret og kører på webserveren. Du kan bekræfte dette ved at logge ind på terminalen og køre kommandoen nedenfor. Hvis Nginx ikke er installeret, skal du følge vores artikel om at installere Nginx på CentOS 8.

$ sudo systemctl status nginx

4. Du kan også bekræfte ved at besøge webserverens URL i en webbrowser.

http://server-IP-or-hostname

Fra URL'en kan vi tydeligt se, at webstedet ikke er sikkert og dermed ikke krypteret. Dette indebærer, at enhver anmodning til webserveren kan opfanges, at dette inkluderer kritiske og fortrolige oplysninger såsom brugernavne, adgangskoder, personnumre og kreditkortoplysninger for at nævne nogle få.

Lad os nu få vores hænder beskidte og installere Lad os kryptere.

Trin 1. Installer Certbot i CentOS 8

For at installere Lad os kryptere certifikat skal du først og fremmest have certbot installeret. Dette er en udvidelig klient, der henter et sikkerhedscertifikat fra Let’s Encrypt Authority og giver dig mulighed for at automatisere validering og konfiguration af certifikatet til brug af webserveren.

Download certbot ved hjælp af curl-kommandoen.

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

Flyt derefter certifikatet til/usr/local/bin-biblioteket.

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

Dernæst tildel filtilladelse til certbot-filen som vist.

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

Trin 2. Konfigurer Nginx Server Block

En serverblok i Nginx svarer til en virtuel vært i Apache. Opsætning af serverblokke giver dig ikke kun mulighed for at oprette flere websteder på en server, men tillader også certbot at bevise ejerskab af domænet til Certificate Authority - CA.

For at oprette en serverblok skal du køre den viste kommando.

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

Sørg for at udskifte domænenavnet med dit eget domænenavn. Indsæt derefter konfigurationen nedenfor.

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;
   }
}

Gem filen, og afslut teksteditoren.

Trin 3: Installer Lets Encrypt Certificate på CentOS 8

Brug nu certbot-kommandoen til at initialisere hentning og konfiguration af Lad os kryptere sikkerhedscertifikat.

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

Denne kommando kører og installerer flere Python-pakker og deres afhængighed som vist.

Dette efterfølges af en interaktiv prompt som vist:

Hvis alt gik godt, skulle du kunne se en lykønskningsmeddelelse i slutningen.

For at bekræfte, at dit Nginx-websted er krypteret, skal du indlæse websiden igen og observere hængelås-symbolet i begyndelsen af URL'en. Dette indikerer, at webstedet er sikret ved hjælp af en SSL/TLS-kryptering.

For at få flere oplysninger om sikkerhedscertifikatet skal du klikke på hængelås-symbolet og vælge indstillingen 'Certifikat'.

Flere oplysninger om sikkerhedscertifikatet vises som vist nedenfor.

Derudover kan du teste styrken af sikkerhedscertifikatet ved at gå ud på https://www.ssllabs.com/ssltest/ og finde en mere nøjagtig og dybdegående analyse af sikkerhedscertifikatets status.

Trin 4. Fornyelse af Lad os kryptere certifikat

Som vi så tidligere, er sikkerhedscertifikatet kun gyldigt i en varighed på 90 dage og skal fornyes inden udløbet.

Du kan simulere eller teste certifikatfornyelsesprocessen ved at køre kommandoen:

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

Dette afslutter denne vejledning om sikring af Nginx med Let's Encrypt på CentOS 8. Let's Encrypt tilbyder en effektiv og problemfri måde at sikre din Nginx webserver, der ellers ville være en kompleks affære at gøre manuelt.

Dit websted skal nu være fuldt krypteret. Et par uger til certifikatets udløbsdato advarer EFF dig via e-mail for at forny certifikatet for at undgå afbrydelse, der kan opstå på grund af et udløbet certifikat. Det er alle fyre i dag!