Com protegir Apache amb el certificat SSL gratuït de Lets Encrypt a Ubuntu i Debian


Teniu un nom de domini recent registrat i el vostre servidor web funciona amb un certificat autofirmat SSL emès per vosaltres, que està causant maldecaps als vostres clients mentre visiten el domini a causa dels errors generats pel certificat? Teniu un pressupost limitat i no us podeu permetre el luxe de comprar un certificat emès per una CA de confiança? És quan el programari Let's Encrypt entra en escena i salva el dia.

Si voleu instal·lar Let's Encrypt per a Apache o Nginx a RHEL, CentOS, Fedora o Ubuntu i Debian, seguiu aquestes guies a continuació:

Let's Encrypt és una autoritat de certificació (CA) que us facilita l'adquisició de certificats SSL/TLS gratuïts necessaris perquè el vostre servidor funcioni de manera segura, fent una experiència de navegació fluida per als vostres usuaris, sense cap error.

Tots els passos necessaris per generar un certificat estan, majoritàriament, automatitzats per al servidor web Apache. Tanmateix, malgrat el programari del vostre servidor web, alguns passos s'han de fer manualment i els certificats s'han d'instal·lar manualment, especialment en cas que el dimoni Nginx ofereix el contingut del vostre lloc web.

Aquest tutorial us guiarà sobre com podeu instal·lar el programari Let's Encrypt a Ubuntu o Debian, generar i obtenir un certificat gratuït per al vostre domini i com podeu instal·lar manualment el certificat als servidors web Apache i Nginx.

  1. Un nom de domini públic registrat amb registres A vàlids per apuntar cap a l'adreça IP externa del vostre servidor. En cas que el vostre servidor estigui darrere d'un tallafoc, preneu les mesures necessàries per assegurar-vos que el vostre servidor sigui accessible a tot el món des d'Internet afegint regles de reenviament de ports al costat de l'encaminador.
  2. Servidor web Apache instal·lat amb el mòdul SSL activat i l'allotjament virtual activat, en cas que allotjeu diversos dominis o subdominis.

Pas 1: instal·leu Apache i activeu el mòdul SSL

1. Si no teniu el servidor web Apache ja instal·lat a la vostra màquina, emeteu l'ordre següent per instal·lar el dimoni Apache.

$ sudo apt-get install apache2

2. L'activació del mòdul SSL per al servidor web Apache a Ubuntu o Debian és força senzilla. Activeu el mòdul SSL i activeu l'amfitrió virtual SSL predeterminat d'apache emetent les ordres següents:

$ sudo a2enmod ssl
$ sudo a2ensite default-ssl.conf
$ sudo service apache2 restart
or
$ sudo systemctl restart apache2.service

Els visitants ara poden accedir al vostre nom de domini mitjançant el protocol HTTPS. Tanmateix, com que el certificat autofirmat del vostre servidor no és emès per una autoritat de certificació de confiança, es mostrarà una alerta d'error als seus navegadors, tal com es mostra a la imatge següent.

https://yourdomain.com

Pas 2: instal·leu el client Let's Encrypt gratuït

3. Per instal·lar el programari Let's Encrypt al vostre servidor, heu de tenir el paquet git instal·lat al vostre sistema. Emet l'ordre següent per instal·lar el programari git:

$ sudo apt-get -y install git

4. A continuació, trieu un directori de la jerarquia del vostre sistema on vulgueu clonar el repositori Let's Encrypt git. En aquest tutorial utilitzarem el directori /usr/local/ com a camí d'instal·lació de Let's Encrypt.

Canvieu al directori /usr/local i instal·leu el client letsencrypt emetent les ordres següents:

$ cd /usr/local
$ sudo git clone https://github.com/letsencrypt/letsencrypt

Pas 4: genereu un certificat SSL per a Apache

5. El procés d'obtenció d'un certificat SSL per a Apache està automatitzat gràcies al connector d'Apache. Genereu el certificat emetent l'ordre següent amb el vostre nom de domini. Proporcioneu el vostre nom de domini com a paràmetre a la marca -d.

$ cd /usr/local/letsencrypt
$ sudo ./letsencrypt-auto --apache -d your_domain.tld

Per exemple, si necessiteu que el certificat funcioni en diversos dominis o subdominis, afegiu-los tots utilitzant la marca -d per a cada registre DNS vàlid addicional després del nom de domini base.

$ sudo ./letsencrypt-auto --apache -d your_domain.tld  -d www. your_domain.tld 

6. Accepteu la llicència, introduïu una adreça de correu electrònic per a la recuperació i trieu si els clients poden navegar pel vostre domini mitjançant els dos protocols HTTP (segurs i insegurs) o redirigir totes les sol·licituds no segures a HTTPS.

7. Un cop finalitzat el procés d'instal·lació correctament, es mostra un missatge de felicitació a la consola que us informa de la data de caducitat i de com podeu provar la configuració, tal com es mostra a les captures de pantalla següents.

Ara hauríeu de poder trobar els vostres fitxers de certificat al directori /etc/letsencrypt/live amb una llista de directoris senzilla.

$ sudo ls /etc/letsencrypt/live

8. Finalment, per verificar l'estat del vostre certificat SSL visiteu el següent enllaç. Substituïu el nom de domini en conseqüència.

https://www.ssllabs.com/ssltest/analyze.html?d=your_domain.tld&latest

A més, els visitants ara poden accedir al vostre nom de domini mitjançant el protocol HTTPS sense que aparegui cap error als seus navegadors web.

Pas 4: la renovació automàtica permet xifrar els certificats

9. De manera predeterminada, els certificats emesos per l'autoritat Let's Encrypt són vàlids durant 90 dies. Per renovar el certificat abans de la data de caducitat, heu d'executar manualment el client de nou utilitzant els indicadors i paràmetres exactes com abans.

$ sudo ./letsencrypt-auto --apache -d your_domain.tld

O en cas de diversos subdominis:

$ sudo ./letsencrypt-auto --apache -d your_domain.tld  -d www. your_domain.tld

10. El procés de renovació del certificat es pot automatitzar per executar-se en menys de 30 dies abans de la data de caducitat mitjançant el dimoni cron de programació de Linux.

$ sudo crontab -e

Afegiu l'ordre següent al final del fitxer crontab utilitzant només una línia:

0 1 1 */2 * cd /usr/local/letsencrypt && ./letsencrypt-auto certonly --apache --renew-by-default --apache -d domain.tld >> /var/log/domain.tld-renew.log 2>&1

11. Els detalls sobre el fitxer de configuració del vostre domini de renovació per al programari Let's Encrypt es poden trobar al directori /etc/letsencrypt/renewal/.

$ cat /etc/letsencrypt/renewal/caeszar.tk.conf

També hauríeu de comprovar el fitxer /etc/letsencrypt/options-ssl-apache.conf per veure el nou fitxer de configuració SSL per al servidor web Apache.

12. A més, el connector Anem a xifrar apache modifica alguns fitxers a la configuració del vostre servidor web. Per comprovar quins fitxers s'han modificat, enumereu el contingut del directori /etc/apache2/sites-enabled.

# ls /etc/apache2/sites-enabled/
# sudo cat /etc/apache2/sites-enabled/000-default-le-ssl.conf

Això és tot per ara! A la següent sèrie de tutorials es parlarà de com podeu obtenir i instal·lar un certificat Let's Encrypt per al servidor web Nginx a Ubuntu i Debian i també a CentOS.