📜 Verificación SSL
Obtén el certificado SSL/TLS por nombre de host e inspecciona el emisor, la validez, los SAN y la cadena completa del certificado.
📖 Qué te dice este diagnóstico
El candado aparece sólo cuando se cumplen tres cosas a la vez: el certificado está en vigor, su emisor es de confianza y el dominio coincide. Este diagnóstico realiza un handshake TLS real y examina el certificado devuelto: caducidad, emisor, nombres que cubre y cómo se arma la cadena. Un sitio puede verse bien en tu navegador y fallar en otros sitios si la cadena está incompleta: es la causa habitual cuando se rompe en Android antiguos, en curl o entre servidores mientras Chrome de escritorio no se queja.
| Elemento | Qué significa | Cómo corregirlo |
|---|---|---|
| Caducidad | Días restantes. Los certificados de Let's Encrypt duran 90 días, así que si la renovación se ha parado entras en zona de aviso a los 60 aproximadamente. | Con certbot, certbot renew --dry-run te dice si la vía de renovación sigue funcionando. Casi todos los fallos son el puerto 80 cerrado —el desafío HTTP-01 no puede completarse— o no recargar nginx tras renovar. |
| Cadena de certificados | El camino desde tu certificado hasta una raíz de confianza. Si no sirves el intermedio, sólo fallarán la verificación los clientes que no lo tengan ya en caché. | En nginx, ssl_certificate debe apuntar a un archivo con tu certificado seguido de los intermedios: fullchain.pem con certbot. Apuntar a cert.pem es la causa clásica de este problema. |
| Coincidencia de nombre (SAN) | La lista de nombres que cubre el certificado. Los navegadores leen el SAN, no el CN. example.com y www.example.com son nombres distintos, así que deben estar los dos. |
Vuelve a emitirlo con todos los hosts: -d example.com -d www.example.com en certbot. Un comodín requiere el desafío DNS-01, y ojo: *.example.com no cubre example.com. |
| Versión de TLS | TLS 1.0 y 1.1 están obsoletos y prohibidos por PCI DSS. 1.2 es el mínimo; 1.3 es lo actual. | En nginx, redúcelo a ssl_protocols TLSv1.2 TLSv1.3;. Eso deja fuera a clientes antiguos, así que mira los User-Agent de tu log de acceso antes de decidir. |
Los navegadores cachean los intermedios que ya han visto, así que una cadena incompleta a menudo no se reproduce en tu equipo. La prueba fiable es mirar si el intermedio aparece en la salida de openssl s_client -connect example.com:443 -servername example.com.