Wéi Séchert Nginx mat Lets Encrypt op CentOS 8


Gegrënnt am Abrëll 2016 vun der Electronic Frontier Foundation (EFF), Let's Encrypt ass e gratis an automatiséierten digitale Zertifika deen TLS Verschlësselung fir Websäiten op absolut keng Käschten ubitt.

D'Zil vum Let's Encrypt Zertifika ass d'Validatioun, d'Schafung, d'Ënnerschreiwe wéi och d'Auto-Erneierung vum Sécherheetszertifika ze automatiséieren. Dëst Zertifika erméiglecht verschlësselte Verbindunge mat Webserveren mat dem HTTPS Protokoll op eng einfach, ouni Problem ouni Komplexitéit. Den Zertifika ass valabel fir nëmmen 90 Deeg, op deenen d'Autorennewal kann ageschalt ginn.

Recommandéiert Liesen: Wéi sécher Apache mat Let's Encrypt SSL Certificate on CentOS 8

An dësem Artikel wäerte mir demonstréieren wéi Dir Let's Encrypt installéiere kënnt fir e gratis SSL Zertifika ze kréien fir den Nginx Webserver op CentOS 8 ze sécheren (déiselwecht Instruktioune funktionnéieren och op RHEL 8). Mir erklären Iech och wéi Dir Ären SSL Zertifika automatesch erneiert.

Ier mir weidergoe fir sécherzestellen datt Dir déi folgend am Scheck hutt.

1. A Fully Qualified Domain Name (FQDN) weist op eng speziell IP Adress vum Webserver. Dëst muss am Client Beräich vun Ärem DNS Webhosting Provider konfiguréiert ginn. Fir dësen Tutorial benotze mir den Domain Numm linuxtechwhiz deen op d'IP Adress 34.70.245.117 weist.

2. Dir kënnt dëst och bestätegen andeems Dir e Forward Lookup benotzt mat dem Dig Kommando wéi gewisen.

$ dig linuxtechwhiz.info

3. Nginx installéiert a lafen op de Webserver. Dir kënnt dëst bestätegen andeems Dir Iech am Terminal loggt an de Kommando hei drënner leeft. Wann Nginx net installéiert ass, befollegt eisen Artikel fir Nginx op CentOS 8 z'installéieren.

$ sudo systemctl status nginx

4. Dir kënnt och verifizéieren andeems Dir d'URL vum Webserver op engem Webbrowser besicht.

http://server-IP-or-hostname

Vun der URL kënne mir kloer gesinn datt de Site net sécher ass, an dofir net verschlësselt. Dëst implizéiert datt all Ufroe, déi un de Webserver gemaach ginn, kënnen ofgefaangen ginn datt dëst kritesch a vertraulech Informatioun enthält wéi Benotzernimm, Passwierder, Sozialversécherungsnummeren a Kredittkaartinformatioun fir e puer ze nennen.

Loosst eis elo d'Hänn dreckeg maachen an installéieren Let's Encrypt.

Schrëtt 1. Installéiert Certbot an CentOS 8

Fir Let's Encrypt Zertifikat z'installéieren, musst Dir fir d'éischt e Certbot installéiert hunn. Dëst ass en erweiderbare Client deen e Sécherheetszertifika vun der Let's Encrypt Authority hëlt a léisst Iech d'Validatioun an d'Konfiguratioun vum Zertifika automatiséieren fir vum Webserver ze benotzen.

Luet certbot erof mam Curl Kommando.

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

Als nächst réckelt den Zertifika an den /usr/local/bin Verzeichnis.

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

Als nächst gitt d'Datei Erlaabnis un d'certbot Datei wéi gewisen.

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

Schrëtt 2. Nginx Server Block konfiguréieren

E Serverblock an Nginx ass den Äquivalent vun engem virtuellen Host an Apache. D'Astellung vu Serverblocken erlaabt Iech net nëmmen e puer Websäiten an engem Server opzestellen, awer och erlaabt certbot d'Besëtzer vun der Domain un d'Zertifikat Autoritéit - CA ze beweisen.

Fir e Serverblock ze kreéieren, fuert de Kommando gewisen.

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

Gitt sécher den Domain Numm mat Ärem eegenen Domain Numm ze ersetzen. Paste dann d'Konfiguratioun hei drënner.

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

Späichert d'Datei a gitt aus dem Texteditor.

Schrëtt 3: Installéiert Lets Encrypt Certificate op CentOS 8

Benotzt elo certbot Kommando fir d'Erfaassung an d'Konfiguratioun vum Let's Encrypt Sécherheetszertifika ze initialiséieren.

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

Dëse Kommando leeft an installéiert verschidde Python Packagen an hir Ofhängegkeeten wéi gewisen.

Dëst gëtt duerno vun enger interaktiver Prompt gefollegt wéi gewisen:

Wann alles gutt gaang ass, sollt Dir um Enn e Gratulatiounsmessage gesinn.

Fir ze bestätegen datt Är Nginx Site verschlësselt ass, lued d'Websäit nei a beobachtet de Padlock Symbol am Ufank vun der URL. Dëst weist datt de Site mat enger SSL/TLS Verschlësselung geséchert ass.

Fir méi Informatiounen iwwer de Sécherheetszertifika ze kréien, klickt op de Padlock Symbol a wielt d'Optioun 'Zertifikat'.

Méi Informatioun iwwer de Sécherheetszertifika gëtt ugewisen wéi hei ënnendrënner.

Zousätzlech, fir d'Stäerkt vum Sécherheetszertifika ze testen, gitt op https://www.ssllabs.com/ssltest/ a fannt eng méi genee an déif Analyse vum Status vum Sécherheetszertifika.

Schrëtt 4. Erneierung vum Let's Encrypt Certificate

Wéi mir virdru gesinn hunn, ass de Sécherheetszertifika nëmme valabel fir eng Dauer vun 90 Deeg a muss virum Verfall erneiert ginn.

Dir kënnt den Zertifikat Erneierungsprozess simuléieren oder testen andeems Dir de Kommando ausféiert:

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

This wraps up this Tutorial on Securing Nginx with Let's Encrypt on CentOS 8. Let's Encrypt bitt en effektiven an ouni Problem fir Ären Nginx Webserver ze sécheren, deen soss eng komplex Affär ass fir manuell ze maachen.

Äre Site soll elo voll verschlësselte sinn. E puer Wochen bis zum Verfallsdatum vum Zertifika wäert d'EFF Iech per E-Mail alarméieren fir den Zertifika ze erneieren fir Ënnerbriechungen ze vermeiden déi opgrond vun engem ofgelaften Zertifikat entstoen. Dat ass alles Kärelen fir haut!