Com protegir Nginx amb Lets Encrypt a CentOS 8


Fundat l'abril de 2016 per Electronic Frontier Foundation (EFF), Let's Encrypt és un certificat digital gratuït i automatitzat que proporciona xifratge TLS per a llocs web sense cap cost.

L'objectiu del certificat Let's Encrypt és automatitzar la validació, creació, signatura i renovació automàtica del certificat de seguretat. Aquest certificat permet connexions xifrades a servidors web mitjançant el protocol HTTPS d'una manera senzilla i sense problemes sense cap complexitat. El certificat només té una validesa de 90 dies en els quals es pot activar l'autorenovació.

Lectura recomanada: Com protegir Apache amb el certificat SSL de Let's Encrypt a CentOS 8

En aquest article, demostrarem com podeu instal·lar Let's Encrypt per obtenir un certificat SSL gratuït per protegir el servidor web Nginx a CentOS 8 (les mateixes instruccions també funcionen a RHEL 8). També us explicarem com renovar automàticament el vostre certificat SSL.

Abans de procedir per assegurar-nos que teniu el següent controlat.

1. Un nom de domini totalment qualificat (FQDN) que apunta a una adreça IP dedicada del servidor web. Això s'ha de configurar a l'àrea de client del vostre proveïdor d'allotjament web DNS. Per a aquest tutorial, estem utilitzant el nom de domini linuxtechwhiz que apunta a l'adreça IP 34.70.245.117.

2. També podeu confirmar-ho fent una cerca cap endavant amb l'ordre dig tal com es mostra.

$ dig linuxtechwhiz.info

3. Nginx instal·lat i en funcionament al servidor web. Podeu confirmar-ho iniciant sessió al terminal i executant l'ordre següent. Si Nginx no està instal·lat, seguiu el nostre article per instal·lar Nginx a CentOS 8.

$ sudo systemctl status nginx

4. També podeu verificar si visiteu l'URL del servidor web en un navegador web.

http://server-IP-or-hostname

A partir de l'URL, podem veure clarament que el lloc no és segur i, per tant, no està xifrat. Això implica que es pot interceptar qualsevol sol·licitud feta al servidor web que inclogui informació crítica i confidencial com ara noms d'usuari, contrasenyes, números de seguretat social i informació de targetes de crèdit per esmentar-ne algunes.

Ara embrutem-nos les mans i instal·lem Let's Encrypt.

Pas 1. Instal·leu Certbot a CentOS 8

Per instal·lar el certificat Let's Encrypt, primer de tot cal que tingueu instal·lat certbot. Aquest és un client extensible que obté un certificat de seguretat de Let's Encrypt Authority i us permet automatitzar la validació i la configuració del certificat per al servidor web.

Baixeu certbot mitjançant l'ordre curl.

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

A continuació, moveu el certificat al directori /usr/local/bin.

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

A continuació, assigneu permís de fitxer al fitxer certbot tal com es mostra.

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

Pas 2. Configura el bloc del servidor Nginx

Un bloc de servidor a Nginx és l'equivalent a un host virtual a Apache. La configuració de blocs de servidors no només us permet configurar diversos llocs web en un servidor, sinó que també permet que certbot demostri la propietat del domini a l'Autoritat de certificació - CA.

Per crear un bloc de servidor, executeu l'ordre que es mostra.

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

Assegureu-vos de substituir el nom de domini pel vostre propi nom de domini. A continuació, enganxeu la configuració a continuació.

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

Deseu el fitxer i sortiu de l'editor de text.

Pas 3: instal·leu el certificat Lets Encrypt a CentOS 8

Ara feu servir l'ordre certbot per inicialitzar l'obtenció i la configuració del certificat de seguretat Let's Encrypt.

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

Aquesta ordre executarà i instal·larà diversos paquets de Python i les seves dependències tal com es mostra.

A continuació, seguirà un missatge interactiu tal com es mostra:

Si tot ha anat bé, hauríeu de poder veure un missatge de felicitació al final.

Per confirmar que el vostre lloc Nginx està xifrat, torneu a carregar la pàgina web i observeu el símbol del cadenat al començament de l'URL. Això indica que el lloc està protegit mitjançant un xifratge SSL/TLS.

Per obtenir més informació sobre el certificat de seguretat, feu clic al símbol del cadenat i seleccioneu l'opció Certificat.

Es mostrarà més informació sobre el certificat de seguretat tal com es mostra a continuació.

A més, per provar la força del certificat de seguretat, aneu a https://www.ssllabs.com/ssltest/ i trobeu una anàlisi més precisa i en profunditat de l'estat del certificat de seguretat.

Pas 4. Renovació del certificat Let's Encrypt

Com hem vist anteriorment, el certificat de seguretat només té una validesa de 90 dies i s'ha de renovar abans del venciment.

Podeu simular o provar el procés de renovació del certificat executant l'ordre:

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

Això tanca aquest tutorial sobre com protegir Nginx amb Let's Encrypt a CentOS 8. Let's Encrypt ofereix una manera eficaç i sense problemes de protegir el vostre servidor web Nginx que, d'altra manera, seria una tasca complexa de fer manualment.

Ara el vostre lloc hauria d'estar completament xifrat. Unes quantes setmanes abans de la data de caducitat del certificat, EFF us avisarà per correu electrònic per renovar el certificat per evitar interrupcions que es puguin produir a causa d'un certificat caducat. Això és tot nois per avui!