Com crear un certificat SSL autofirmat local a CentOS 8


SSL (Secure Socket Layer) i la seva versió millorada, TLS (Transport Socket Layer), són protocols de seguretat que s'utilitzen per protegir el trànsit web enviat des del navegador web d'un client a un servidor web.

Un certificat SSL és un certificat digital que crea un canal segur entre el navegador d'un client i un servidor web. En fer-ho, les dades sensibles i confidencials, com ara les dades de la targeta de crèdit, les credencials d'inici de sessió i altra informació altament privada, s'encripten, evitant que els pirates informàtics escoltin i us roben la informació.

Un certificat SSL autofirmat, a diferència d'altres certificats SSL signats i de confiança per una autoritat de certificació (CA), és un certificat signat per una persona que el posseeix.

És totalment gratuït crear-ne un i és una forma econòmica de xifrar el vostre servidor web allotjat localment. Tanmateix, es desaconsella molt l'ús d'un certificat SSL autofirmat en entorns de producció pels motius següents:

  1. Com que no està signat per una autoritat de certificació, un certificat SSL autofirmat genera alertes als navegadors web que adverteixen els usuaris del possible risc per endavant si decideixen continuar. Aquestes alertes no són desitjades i dissuadiran els usuaris de visitar el vostre lloc web, la qual cosa podria provocar una disminució del trànsit web. Com a solució alternativa a aquestes alertes, les organitzacions solen animar els seus empleats a ignorar les alertes i continuar endavant. Això pot generar un hàbit perillós entre els usuaris que poden decidir continuar ignorant aquestes alertes en altres llocs en línia, que poden ser víctimes de llocs de pesca.
  2. Els certificats autofirmats tenen un nivell de seguretat baix, ja que implementen tecnologies de xifratge i hash de baix nivell. Per tant, és possible que el nivell de seguretat no estigui a l'alçada de les polítiques de seguretat estàndard.
  3. A més, no hi ha suport per a les funcions d'infraestructura de clau pública (PKI).

Dit això, l'ús d'un certificat SSL autofirmat no és una mala idea per provar serveis i aplicacions en una màquina local que requereixi xifratge TLS/SSL.

En aquesta guia, aprendràs a instal·lar un certificat SSL autofirmat local al servidor web Apache localhost en un sistema de servidor CentOS 8.

Abans de començar, assegureu-vos que teniu els requisits bàsics següents:

  1. Una instància del servidor CentOS 8.
  2. Servidor web Apache instal·lat al servidor
  3. Un nom d'amfitrió ja configurat i definit al fitxer /etc/hosts. Per a aquesta guia, farem servir tecmint.local un nom d'amfitrió per al nostre servidor.

Pas 1: instal·lació de Mod_SSL a CentOS

1. Per començar, heu de verificar que el servidor web Apache estigui instal·lat i en funcionament.

$ sudo systemctl status httpd

Aquí teniu la sortida esperada.

Si el servidor web no s'està executant, podeu iniciar-lo i activar-lo en iniciar-lo mitjançant l'ordre.

$ sudo systemctl start httpd
$ sudo systemctl enable httpd

A continuació, podeu confirmar si Apache està en funcionament.

2. Per habilitar la instal·lació i la configuració del certificat SSL autofirmat local, cal el paquet mod_ssl.

$ sudo dnf install mod_ssl

Un cop instal·lat, podeu verificar la seva instal·lació executant-lo.

$ sudo rpm -q mod_ssl

A més, assegureu-vos que el paquet OpenSSL estigui instal·lat (OpenSSL ve instal·lat per defecte a CentOS 8).

$ sudo rpm -q openssl 

Pas 2: creeu un certificat SSL autofirmat local per a Apache

3. Amb el servidor web Apache i tots els requisits previs controlats, heu de crear un directori dins del qual s'emmagatzemaran les claus criptogràfiques.

En aquest exemple, hem creat un directori a /etc/ssl/private.

$ sudo mkdir -p /etc/ssl/private

Ara creeu la clau del certificat SSL local i el fitxer amb l'ordre:

$ sudo openssl req -x509 -nodes -newkey rsa:2048 -keyout tecmint.local.key -out tecmint.local.crt

Fem una ullada a què signifiquen realment algunes de les opcions de l'ordre:

  • req -x509: això indica que estem utilitzant la sol·licitud de signatura de certificat (CSR) x509.
  • -nodes: aquesta opció indica a OpenSSL que omet l'encriptació del certificat SSL mitjançant una frase de contrasenya. La idea aquí és permetre que Apache pugui llegir el fitxer sense cap tipus d'intervenció de l'usuari, cosa que no seria possible si es proporcionés una frase de contrasenya.
  • -newkey rsa:2048: això indica que volem crear simultàniament una nova clau i un nou certificat. La part rsa:2048 implica que volem crear una clau RSA de 2048 bits.
  • -keyout: aquesta opció especifica on s'ha d'emmagatzemar el fitxer de clau privada generat en el moment de la creació.
  • -out: l'opció especifica on col·locar el certificat SSL creat.

Pas 3: instal·leu el certificat SSL autofirmat local a Apache

4. Després d'haver generat el fitxer del certificat SSL, ara és el moment d'instal·lar el certificat mitjançant la configuració del servidor web Apache. Obriu i editeu el fitxer de configuració /etc/httpd/conf.d/ssl.conf.

$ sudo vi /etc/httpd/conf.d/ssl.conf

Assegureu-vos que teniu les línies següents entre les etiquetes d'amfitrió virtual.

<VirtualHost *:443>
    ServerAdmin [email 
    ServerName www.tecmint.local
    ServerAlias tecmint.local
 
    DocumentRoot /var/www/html
 
    SSLEngine on
    SSLCertificateFile /etc/ssl/private/tecmint.local.crt
    SSLCertificateKeyFile /etc/ssl/private/tecmint.local.key
</VirtualHost>

Desa i surt del fitxer. Perquè es realitzin els canvis, reinicieu Apache amb l'ordre:

$ sudo systemctl restart httpd

5. Perquè usuaris externs puguin accedir al vostre servidor, heu d'obrir el port 443 mitjançant el tallafoc, tal com es mostra.

$ sudo firewall-cmd --add-port=443 --zone=public --permanent
$ sudo firewall-cmd --reload

Pas 3: prova del certificat SSL autofirmat local a Apache

Amb totes les configuracions al seu lloc, engegueu el vostre navegador i navegueu per l'adreça del vostre servidor mitjançant l'adreça IP o el nom de domini del servidor mitjançant el protocol https.

Per racionalitzar les proves, podeu considerar redirigir el protocol HTTP a HTTPS al servidor web Apache. Això és perquè cada vegada que navegueu pel domini en HTTP normal, es redirigirà automàticament al protocol HTTPS.

Així que navegueu pel domini o la IP del vostre servidor

https://domain_name/

Rebràs una alerta que t'informarà que la connexió no és segura tal com es mostra. Això variarà d'un navegador a un altre. Com podeu suposar, l'alerta es deu al fet que el certificat SSL no està signat per l'autoritat de certificació i el navegador ho registra i informa que no es pot confiar en el certificat.

Per accedir al vostre lloc web, feu clic a la pestanya Avançat com es mostra a dalt:

A continuació, afegiu l'excepció al navegador.

Finalment, torneu a carregar el vostre navegador i observeu que ara podeu accedir al servidor, tot i que hi haurà un avís a la barra d'URL que el lloc no és totalment segur pel mateix motiu que el certificat SSL està signat per si mateix i no està signat pel Autoritat de certificació.

Esperem que ara pugueu continuar i crear i instal·lar un certificat SSL autofirmat al servidor web Apache localhost a CentOS 8.