como-conseguir-certificado-ssl-en-raspberry-pi

Cómo conseguir un certificado SSL en Raspberry Pi

Si vais a montar un servidor web en una Raspberry Pi o en cualquier otro ordenador (como una VPS), una de las cosas que vais a necesitar es un certificado SSL*.

El certificado SSL (Secure Sockets Layer) nos permite cifrar las comunicaciones entre el servidor y los usuarios, garantizando la seguridad y privacidad de los datos.

Además de la seguridad, nos permite usar protocolos como https o http2 (estos requieren obligatoriamente un certificado SSL), que son mucho más rápidos y eficientes.

Es decir, que a día de hoy simplemente es imprescindible tener un certificado SSL. Si no, por ejemplo, los usuarios verán una advertencia al acceder a nuestras páginas web.

Afortunadamente, también tenemos opciones para generar certificados fácilmente y de forma gratuita.

Por ejemplo, hoy veremos cómo obtener e instalar un certificado SSL usando Let’s Encrypt, una autoridad de certificación gratuita y automatizada.

Prerequisitos

En primer lugar, vamos a asumir que tenéis un servidor web HTTP configurado. Es decir, tenéis lo siguiente:

  • Domino comprado (en el tutorial le llamaré midominio.com)
  • Servidor web correctamente configurado (ya sea Apache o Nginx)

El servidor debe estar funcionando, lógicamente en HTTP (no HTTPS aún) porque aún no tienes el certificado SSL.

Pero es necesario tener el servidor funcionando porque durante el proceso la utilidad de certificación va a comprobar que el dominio funciona correctamente.

En resumen, esto lo hace grabando un ficherito en el servidor, y comprobando que todo es correcto. Posteriormente borra y deja todo limpio.

Además, conviene que nuestro sistema esté actualizado. Para eso, ejecutamos los siguientes comandos.

sudo apt update
sudo apt upgrade

Instalar Certbot y el plugin

Certbot es la herramienta oficial de Let’s Encrypt para obtener certificados SSL. Dependiendo del servidor web que uses (Apache o Nginx), elige el comando correspondiente:

Para Apache:

sudo apt install certbot python3-certbot-apache

Para Nginx:

sudo apt install certbot python3-certbot-nginx

Obtener un certificado SSL

Con Certbot instalado, podemos obtener un certificado SSL. De nuevo, los comandos varían ligeramente según el servidor web que utilices.

Para Apache:

sudo certbot --apache -d midominio.com -d www.midominio.com

Para Nginx:

sudo certbot --nginx -d midominio.com -d www.midominio.com

El parámetro -d especifica los dominios para los que deseas el certificado. Podemos añadir más dominios separados por espacio si es necesario

Es frecuente que, mínimo, generemos el certificado para el dominio con www y sin www

Durante el proceso, Certbot te pedirá algunas confirmaciones, como proporcionar una dirección de correo electrónico para notificaciones y aceptar los términos del servicio.

Certbot también te preguntará si deseas redirigir todo el tráfico a HTTPS. Es recomendable seleccionar esta opción para asegurar que todas las conexiones se realicen de forma segura.

Configurar la renovación automática del certificado

Los certificados Let’s Encrypt tienen una validez de 90 días. Para renovarlos automáticamente, Certbot instala un cron job o systemd timer que se ejecuta dos veces al día y renueva los certificados que estén por expirar.

Para probar la renovación automática, ejecuta:

sudo certbot renew --dry-run

Verificar la configuración

Después de la instalación, verifica que el certificado está correctamente configurado visitando https://midominio.com en tu navegador.

Debes ver el candado de seguridad 🔒, indicando que el sitio está asegurado con HTTPS. ¡Enhorabuena!, ya tienes tu certificado SSL funcionando.