Com instal·lar el certificat SSL gratuït per a Nginx a Debian 10


Quan configureu un lloc web, una de les consideracions clau que heu de tenir en compte és la seguretat del vostre lloc. Un certificat SSL és un certificat digital que xifra les dades que s'envien des del navegador d'un usuari a un servidor web. D'aquesta manera, les dades enviades són confidencials i segures dels pirates informàtics que utilitzen sniffers de paquets com Wireshark per interceptar i escoltar la vostra comunicació.

Un lloc xifrat té un símbol de cadenat a la barra d'URL seguit de l'acrònim https, tal com es mostra a la captura de pantalla següent.

Un lloc sense xifrar sol tenir una notificació \No segur a la barra d'URL.

Abans de començar, assegureu-vos que s'han complert els requisits següents:

  1. Una instància en execució de Debian 10 Minimal Server.
  2. Una instància en execució del servidor web Nginx amb la configuració del domini a Debian 10.
  3. Un nom de domini totalment qualificat (FQDN) registrat amb el registre A que apunta a l'adreça IP de Debian 10 al vostre proveïdor de domini.

Per a aquest tutorial, hem apuntat linux-console.net a l'adreça IP 192.168.0.104.

En aquest article, examinem com podeu instal·lar Let's Encrypt SSL a Debian 10 per obtenir un certificat SSL gratuït per al lloc allotjat de Nginx.

Let's Encrypt SSL és un certificat gratuït d'EFF (Electronic Frontier Foundation) que té una validesa de 3 mesos i que es renova automàticament quan caduqui. És una manera fàcil i econòmica d'encriptar el vostre lloc si teniu les butxaques ajustades.

Sense massa preàmbuls, endinsem-nos i instal·lem Let's Encrypt al servidor web de Nginx:

Pas 1: instal·leu Certbot a Debian 10

Per començar, hem d'instal·lar Certbot: és un programari que obté el certificat digital Let's Encrypt i el desplega més tard en un servidor web. Per aconseguir-ho, hem d'instal·lar el paquet python3-certbot-nginx. Però abans de fer-ho, primer actualitzem els paquets del sistema.

$ sudo apt update

El següent pas és instal·lar les dependències requerides pel paquet python3-certbot-nginx.

$ sudo apt install python3-acme python3-certbot python3-mock python3-openssl python3-pkg-resources python3-pyparsing python3-zope.interface

Ara instal·lem el paquet python3-certbot-nginx.

$ sudo apt install python3-certbot-nginx

Pas 2. Verificació de la configuració del bloc del servidor Nginx

Perquè certbot es desplegui automàticament Xifrem el certificat SSL al servidor web Nginx, cal configurar un bloc de servidor. Vam cobrir la configuració dels blocs del servidor Nginx a l'última secció de l'article anterior.

Si heu seguit amb atenció, hauríeu de tenir un bloc de servidor a /etc/nginx/sites-available/some_domain. En el nostre cas, el bloc del servidor Nginx serà

/etc/nginx/sites-available/linux-console.net

A més, assegureu-vos que la directiva server_name correspon al vostre nom de domini.

server_name linux-console.net linux-console.net;

Per confirmar que totes les configuracions de Nginx estan en ordre, executeu:

$ sudo nginx -t

La sortida anterior indica que tot està bé.

Pas 3: configureu el tallafoc per obrir el port HTTPS

En cas que tingueu ufw configurat i habilitat, com sempre es recomana, hem de permetre el protocol HTTPS a través del tallafoc perquè el servidor web sigui accessible per a tothom.

$ sudo ufw allow 'Nginx Full'

A continuació, torneu a carregar el tallafoc per efectuar els canvis.

$ sudo ufw reload

Verificar que hem permès el protocol a través del tallafoc.

$ sudo ufw status

Pas 4: implementació del certificat SSL de Let's Encrypt per al domini

Amb tots els paràmetres i configuracions controlats, és hora d'obtenir i implementar el certificat SSL de Let's Encrypt al lloc del domini.

$ sudo certbot --nginx -d domain-name  -d www.domain-name.com 

En el nostre cas, tindrem

$ sudo certbot --nginx -d linux-console.net -d linux-console.net

En el primer pas, se us demanarà que introduïu la vostra adreça de correu electrònic. Escriviu la vostra adreça i premeu Enter.

A continuació, se us demanarà que accepteu les condicions del servei. Escriviu A per continuar.

Certbot procedirà a demanar el vostre consentiment per utilitzar el vostre correu electrònic per enviar-vos notificacions sobre els últims desenvolupaments a EFF. Aquí, podeu optar per activar o desactivar-lo, per activar-lo, escriviu Y (Sí) i premeu Retorn. Per declinar la participació, premeu N (No).

Aleshores, Certbot es posarà en contacte amb Let's encrypt, descarregarà el certificat SSL i el desplegarà al bloc del servidor Nginx que ja heu creat.

A la secció següent, escriviu 2 per redirigir el trànsit HTTP habitual a HTTPS.

El certificat s'implementarà al vostre servidor Nginx i rebreu una notificació de felicitació per confirmar que ara el vostre servidor web està xifrat amb Let's Encrypt SSL.

Pas 5: verifiqueu HTTPS al lloc web de Nginx

Per verificar els canvis mitjançant un navegador web, actualitzeu la pestanya del navegador i assegureu-vos de notar el símbol del cadenat.

Feu clic a la icona del cadenat i seleccioneu l'opció Certificat per veure els detalls del certificat SSL.

Es mostraran tots els detalls del certificat.

Podeu verificar encara més l'estat del vostre servidor web provant l'URL del vostre lloc a https://www.ssllabs.com/ssltest/. Si el servidor web està encriptat amb un certificat SSL, obtindreu una puntuació A tal com es mostra.

Hem arribat al final d'aquest tutorial. A la guia, heu après a instal·lar un certificat SSL gratuït per a Nginx a Debian 10.