Encontranos en redes
Instalar certificados SSL con Let's Encrypt
Obtener e instalar certificados SSL gratuitos con Certbot para tu dominio en un VPS.
¿Qué es Let's Encrypt?
Let's Encrypt es una autoridad certificadora gratuita y automatizada. Con Certbot, podés obtener e instalar certificados SSL/TLS en minutos, con renovación automática incluida.
Requisitos
- VPS con Ubuntu/Debian
- Dominio apuntando a la IP del servidor (registros A configurados)
- Nginx o Apache instalado
- Puertos 80 y 443 abiertos en el firewall
Paso 1: Instalar Certbot
sudo apt update
sudo apt install -y certbotInstalá el plugin para tu web server:
# Para Nginx
sudo apt install -y python3-certbot-nginx
# Para Apache
sudo apt install -y python3-certbot-apachePaso 2: Obtener el certificado (Nginx)
sudo certbot --nginx -d tudominio.com -d www.tudominio.comCertbot va a:
- Verificar que controlás el dominio
- Obtener el certificado
- Configurar Nginx automáticamente para usar HTTPS
- Configurar redirección HTTP → HTTPS
Seguí las instrucciones interactivas y elegí redirigir todo el tráfico a HTTPS.
Paso 2 (alternativa): Obtener el certificado (Apache)
sudo certbot --apache -d tudominio.com -d www.tudominio.comPaso 2 (alternativa): Modo standalone
Si no tenés web server corriendo:
sudo certbot certonly --standalone -d tudominio.com -d www.tudominio.comPaso 3: Verificar la instalación
# Ver certificados instalados
sudo certbot certificates
# Verificar desde el navegador
# Visitá https://tudominio.com y verificá el candadoTambién podés verificar con OpenSSL:
openssl s_client -connect tudominio.com:443 -servername tudominio.com < /dev/null 2>/dev/null | openssl x509 -noout -datesPaso 4: Renovación automática
Certbot configura un timer de systemd para renovar automáticamente:
# Verificar que el timer está activo
sudo systemctl status certbot.timer
# Simular una renovación
sudo certbot renew --dry-runLos certificados de Let's Encrypt duran 90 días y se renuevan automáticamente 30 días antes del vencimiento.
Paso 5: Configuración SSL óptima para Nginx
Si querés configurar SSL manualmente o mejorar la configuración de Certbot:
server {
listen 443 ssl http2;
server_name tudominio.com www.tudominio.com;
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:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
# HSTS
add_header Strict-Transport-Security "max-age=63072000" always;
# OCSP Stapling
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 1.1.1.1 valid=300s;
}
# Redirección HTTP → HTTPS
server {
listen 80;
server_name tudominio.com www.tudominio.com;
return 301 https://$server_name$request_uri;
}Certificado wildcard
Para cubrir todos los subdominios (*.tudominio.com):
sudo certbot certonly --manual --preferred-challenges dns -d tudominio.com -d '*.tudominio.com'Esto requiere agregar un registro TXT en tu DNS para verificación.
Solución de problemas
Error: "Could not connect to port 80"
# Verificar que el puerto 80 está abierto
sudo ufw allow 80/tcp
sudo ufw allow 443/tcpError: "DNS problem"
- Verificá que el dominio apunta a la IP correcta:
dig tudominio.com +short - Esperá a que la propagación DNS se complete
Renovación falla
# Ver logs de renovación
sudo journalctl -u certbot.service
# Forzar renovación
sudo certbot renew --force-renewalRecomendaciones
- Siempre usá
--dry-runantes de renovaciones manuales - Configurá alertas para vencimiento de certificados como respaldo
- Usá la configuración SSL moderna (TLS 1.2+) para mejor seguridad
- Verificá tu configuración SSL en ssllabs.com/ssltest