Instalar Certificado SSL en AlmaLinux con Let’s Encrypt
Aprende a instalar un certificado SSL gratis en AlmaLinux usando Let’s Encrypt y Certbot. Esta guía cubre la instalación para Apache y Nginx, configuración de renovación automática y troubleshooting de problemas comunes.
Un certificado SSL es esencial para cualquier sitio web moderno. Protege la información de tus usuarios y mejora tu posicionamiento en Google. Configúralo en tu servidor VPS siguiendo esta guía.
Contenido
1. ¿Qué es SSL/TLS y Let’s Encrypt?
SSL/TLS
SSL (Secure Sockets Layer) y su sucesor TLS (Transport Layer Security) son protocolos que cifran la comunicación entre el navegador y el servidor. Cuando un sitio usa HTTPS (HTTP Secure), los datos viajan encriptados.
Beneficios de usar SSL:
- Seguridad: Protege datos sensibles (contraseñas, tarjetas)
- Confianza: Los usuarios ven el candado en el navegador
- SEO: Google favorece sitios con HTTPS
- Requisito: Navegadores marcan sitios sin SSL como «No seguros»
Let’s Encrypt
Let’s Encrypt es una autoridad certificadora gratuita, automatizada y abierta. Proporciona certificados SSL/TLS válidos sin costo, con renovación automática cada 90 días.
2. Instalar Certbot
Certbot es la herramienta oficial para obtener certificados de Let’s Encrypt:
Instalar EPEL y Certbot
# Instalar repositorio EPEL
sudo dnf install epel-release -y
# Instalar Certbot base
sudo dnf install certbot -y
# Para Apache
sudo dnf install python3-certbot-apache -y
# Para Nginx
sudo dnf install python3-certbot-nginx -y
# Verificar instalación
certbot --version
Requisitos previos
Antes de solicitar el certificado:
- El dominio debe apuntar a la IP del servidor (registro A en DNS)
- Los puertos 80 y 443 deben estar abiertos en el firewall
- El servidor web (Apache/Nginx) debe estar funcionando
# Verificar que el dominio apunta al servidor
dig tudominio.com +short
# Debe mostrar la IP de tu servidor
# Abrir puertos en firewall
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
3. SSL para Apache
Obtener e instalar certificado
# Método automático (recomendado)
sudo certbot --apache -d tudominio.com -d www.tudominio.com
# Opciones durante la instalación:
# 1. Ingresar email para notificaciones
# 2. Aceptar términos de servicio
# 3. Opcional: suscribirse al newsletter
# 4. Elegir: redirigir HTTP a HTTPS (recomendado: sí)
Verificar configuración
# Certbot crea/modifica archivo de configuración
ls /etc/httpd/conf.d/*ssl*.conf
# Ver configuración del virtual host
cat /etc/httpd/conf.d/tudominio-le-ssl.conf
# Verificar que Apache funciona
sudo apachectl configtest
sudo systemctl restart httpd
Configuración manual (si es necesario)
# Si prefieres configurar manualmente:
sudo certbot certonly --apache -d tudominio.com
# Los certificados se guardan en:
/etc/letsencrypt/live/tudominio.com/fullchain.pem # Certificado
/etc/letsencrypt/live/tudominio.com/privkey.pem # Llave privada
# Configuración manual en virtual host:
<VirtualHost *:443>
ServerName tudominio.com
DocumentRoot /var/www/tudominio
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/tudominio.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/tudominio.com/privkey.pem
# Configuración SSL moderna
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256
</VirtualHost>
4. SSL para Nginx
Obtener e instalar certificado
# Método automático
sudo certbot --nginx -d tudominio.com -d www.tudominio.com
# Seguir instrucciones interactivas
# Certbot modificará automáticamente la configuración de Nginx
Verificar configuración
# Ver configuración modificada
cat /etc/nginx/conf.d/tudominio.conf
# Verificar sintaxis
sudo nginx -t
# Recargar Nginx
sudo systemctl reload nginx
Configuración manual para Nginx
# Obtener solo el certificado
sudo certbot certonly --nginx -d tudominio.com
# Configuración manual del server block:
server {
listen 443 ssl http2;
server_name tudominio.com www.tudominio.com;
root /var/www/tudominio;
ssl_certificate /etc/letsencrypt/live/tudominio.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/tudominio.com/privkey.pem;
# Configuración SSL moderna
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
ssl_prefer_server_ciphers off;
# HSTS (opcional pero recomendado)
add_header Strict-Transport-Security "max-age=63072000" always;
}
# Redirección de HTTP a HTTPS
server {
listen 80;
server_name tudominio.com www.tudominio.com;
return 301 https://$server_name$request_uri;
}
5. Renovación Automática
Los certificados de Let’s Encrypt expiran en 90 días. Certbot configura renovación automática:
Verificar timer de renovación
# Ver estado del timer
sudo systemctl status certbot-renew.timer
# Ver cuándo se ejecutará
systemctl list-timers certbot-renew*
# Ver logs de renovación
sudo journalctl -u certbot-renew
Probar renovación
# Simular renovación (sin aplicar cambios)
sudo certbot renew --dry-run
# Si la prueba es exitosa, la renovación automática funcionará
Renovación manual
# Renovar todos los certificados
sudo certbot renew
# Renovar certificado específico
sudo certbot renew --cert-name tudominio.com
# Forzar renovación (aunque no esté próximo a expirar)
sudo certbot renew --force-renewal
Script post-renovación
# Crear hook para reiniciar servicio después de renovar
sudo mkdir -p /etc/letsencrypt/renewal-hooks/deploy
sudo nano /etc/letsencrypt/renewal-hooks/deploy/restart-webserver.sh
#!/bin/bash
# Reiniciar servidor web después de renovar certificado
# Para Apache
systemctl reload httpd
# Para Nginx
# systemctl reload nginx
# Hacer ejecutable
sudo chmod +x /etc/letsencrypt/renewal-hooks/deploy/restart-webserver.sh
6. Troubleshooting
Error: «Could not bind to port 80»
# El servidor web debe estar corriendo
sudo systemctl status httpd # o nginx
# Verificar qué usa el puerto 80
sudo ss -tlnp | grep :80
Error: «DNS problem»
# Verificar que el dominio apunta al servidor
dig tudominio.com
nslookup tudominio.com
# El registro A debe apuntar a la IP del servidor
# Esperar propagación DNS si recién se configuró
Error: «Connection refused»
# Verificar firewall
sudo firewall-cmd --list-all
# Abrir puertos necesarios
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
Forzar HTTPS en aplicación
# Para WordPress, agregar en wp-config.php:
define('FORCE_SSL_ADMIN', true);
# Y en .htaccess:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Verificar certificado
# Ver información del certificado
sudo certbot certificates
# Probar SSL online
# https://www.ssllabs.com/ssltest/
# Verificar desde línea de comandos
openssl s_client -connect tudominio.com:443 -servername tudominio.com
Preguntas Frecuentes
¿Let’s Encrypt es gratis?
Sí, Let’s Encrypt es 100% gratuito. Es una autoridad certificadora sin fines de lucro respaldada por Mozilla, EFF, Cisco y otros. Los certificados son válidos por 90 días y se renuevan automáticamente con Certbot. No hay costos ocultos ni limitaciones en la cantidad de certificados.
¿Cada cuánto debo renovar el certificado SSL?
Los certificados de Let’s Encrypt expiran cada 90 días, pero Certbot configura renovación automática que intenta renovar cuando quedan 30 días. No necesitas hacer nada manualmente. Verifica que el timer funcione con systemctl status certbot-renew.timer.
¿Cómo forzar HTTPS en mi sitio?
Durante la instalación con Certbot, elige la opción de redireccionar automáticamente. Si necesitas hacerlo manual, para Apache agrega un RewriteRule en .htaccess. Para Nginx, crea un server block en puerto 80 con return 301 https://$server_name$request_uri;.
¿Necesitas un VPS con AlmaLinux?
Nuestros servidores VPS incluyen SSL gratis con Let’s Encrypt y soporte técnico en español 24/7.
Ver Planes VPS¿Necesitas un VPS con AlmaLinux?
Nuestros servidores VPS vienen con AlmaLinux preinstalado y soporte técnico en español 24/7.
Ver Planes VPS







