Índice de contenidos
Una instalación SSL correcta es la primera línea de defensa de cualquier sitio web. Sin HTTPS, navegadores muestran advertencias de seguridad, Google penaliza en ranking y formularios transmiten información sin cifrar. Esta guía te explica tipos de certificado, cómo instalarlos y cómo mantenerlos sin interrupciones.
1. Tabla de contenidos
- Qué es SSL/TLS
- Tipos de certificados
- Proceso de instalación paso a paso
- Configuraciones críticas de seguridad
- Renovación automática
- Resolución de problemas comunes
- Preguntas frecuentes
2. Qué es 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 ves el candado en la barra de direcciones, es porque hay TLS activo.
Puedes profundizar en el protocolo revisando el artículo de Wikipedia sobre Transport Layer Security, que cubre la evolución desde SSL 2.0 hasta TLS 1.3.
3. Tipos de certificados
Por validación:
- DV (Domain Validated): valida propiedad del dominio. Gratis (Let's Encrypt) o muy barato. Ideal para sitios estándar.
- OV (Organization Validated): valida también a la organización. Aparece el nombre de la empresa en el certificado.
- EV (Extended Validation): validación exhaustiva. Históricamente mostraba barra verde con nombre, ahora solo en el detalle. Para bancos y entidades regulatorias.
Por alcance:
- Single domain: cubre un dominio (`ejemplo.com`).
- Wildcard: cubre todos los subdominios (`*.ejemplo.com`).
- Multi-domain / SAN: cubre múltiples dominios en un solo certificado.
Por proveedor:
- Let's Encrypt: gratis, renovación cada 90 días, estándar de facto
- ZeroSSL: gratis, 3 meses, similar a Let's Encrypt
- DigiCert, Sectigo, GlobalSign: premium, garantías altas, validación detallada
- Cloudflare: gratis si usas su CDN
✅ Checklist de SSL correcto
- ✅ Certificado válido (no caducado)
- ✅ Cadena completa de certificados instalada
- ✅ HTTPS forzado con redirección 301 desde HTTP
- ✅ HSTS activo con preload
- ✅ TLS 1.2 o superior (1.3 preferido)
- ✅ Cipher suites modernos
- ✅ OCSP stapling habilitado
- ✅ Renovación automática configurada
- ✅ Puntaje A o A+ en SSL Labs
- ✅ Todos los recursos (imágenes, scripts) cargan por HTTPS
4. Proceso de instalación paso a paso
En un VPS con Nginx y Let's Encrypt (certbot):
```bash
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d ejemplo.com -d www.ejemplo.com
sudo certbot renew --dry-run
```
En un hosting compartido (cPanel, Plesk): la mayoría tiene botón "Instalar Let's Encrypt" en 1-2 clics.
En un servidor con Apache: similar con `certbot --apache`.
Detrás de Cloudflare: Cloudflare proporciona SSL edge gratuito. Configura SSL en modo "Full (strict)" con certificado origen de Cloudflare.
5. Configuraciones críticas de seguridad
Forzar HTTPS (redirección 301 desde HTTP):
```nginx
server {
listen 80;
server_name ejemplo.com www.ejemplo.com;
return 301 https://$server_name$request_uri;
}
```
HSTS (HTTP Strict Transport Security):
```
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
```
Cipher suites modernos:
```nginx
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;
```
OCSP stapling:
```nginx
ssl_stapling on;
ssl_stapling_verify on;
```
> 💡 Tip: valida tu SSL con SSL Labs. Apunta a A+; A es aceptable, cualquier cosa por debajo necesita trabajo.
6. Renovación automática
Let's Encrypt vence cada 90 días. Certbot ya viene con tarea cron automática. Verifica:
```bash
sudo systemctl list-timers | grep certbot
```
Monitoreo de vencimiento: servicios como UptimeRobot, StatusCake alertan 30 días antes del vencimiento.
Comerciales: la mayoría avisa por correo pero no se renueva automáticamente. Pon recordatorio en calendario.
📌 Consejo: configura un monitoreo externo que verifique la validez del SSL cada día. Si algo falla con la renovación, sabes antes de que el usuario se encuentre con una alerta.
7. Resolución de problemas comunes
Mixed content: recursos cargan por HTTP en una página HTTPS. Buscar `http://` en CSS, JS, imágenes. Cambiar a `//` (protocolo relativo) o `https://`.
Cadena incompleta: el navegador reporta certificado no confiable. Instala el certificado intermedio (fullchain.pem).
Certificado vencido: renovar inmediatamente. Verificar por qué falló la renovación automática.
Hostname mismatch: certificado para `www.ejemplo.com` y entran a `ejemplo.com`. Emitir certificado multi-dominio.
SSL_PROTOCOL_ERROR: protocolo obsoleto deshabilitado. Asegúrate de tener TLS 1.2+ habilitado.
Advertencia en Chrome con CN deprecated: usar SAN (Subject Alternative Names) en lugar de CN.
8. Cuánto cuesta
| Tipo | Costo anual |
|---|---|
| Let's Encrypt DV | Gratis |
| ZeroSSL DV | Gratis |
| DV comercial | 20-80 USD |
| OV | 100-300 USD |
| EV | 200-800 USD |
| Wildcard DV | 100-300 USD |
| Wildcard comercial | 300-1000 USD |
| Instalación por profesional | 200-800 mil COP (una vez) |
9. Preguntas frecuentes
¿Let's Encrypt es seguro igual que uno pagado?
Sí, usa el mismo nivel de cifrado. La diferencia es la validación de identidad, no la seguridad técnica.
¿Afecta el SSL al rendimiento?
Mínimamente. Con TLS 1.3 y HTTP/2, el overhead es imperceptible.
¿Necesito SSL si no vendo?
Sí. Navegadores muestran "No seguro" en HTTP, Google penaliza en ranking y cookies pueden ser restringidas.
¿Cómo renueva Cloudflare?
Automáticamente en el edge. El certificado origen se renueva o lo configuras con uno de 15 años que ellos emiten.
¿Puedo tener SSL en múltiples dominios con un solo certificado?
Sí, con certificado SAN o wildcard según necesidad.
10. Conclusión: SSL es requisito, no bonus
En 2026 no hay excusa para un sitio sin HTTPS. Let's Encrypt hace gratuita la instalación básica, hostings modernos la automatizan, y las ventajas en seguridad, SEO y confianza son inmediatas. Una configuración correcta con HSTS, ciphers modernos y renovación automática es la base obligatoria de cualquier sitio profesional.