Inspector de certificados TLS

Abrimos una conexión TLS con el sitio igual que lo hace un navegador y leemos su certificado, incluso si está roto. Si algo falla, sabrás cuál de los fallos habituales tienes delante.

O prueba github.com, expired.badssl.com

Para qué sirve un certificado

Cuando tu navegador se conecta a https://example.com, algo responde. Que ese algo pertenezca a example.com es otra cuestión. Cualquiera situado en la red por el camino podría haber contestado en su lugar.

Por eso el servidor tiene que mostrar su identificación. Un certificado es un archivo pequeño que contiene una clave pública, la lista de nombres de host en nombre de los cuales puede hablar esa clave, una fecha de inicio, una fecha de fin y la firma de una autoridad de certificación (CA) que comprobó quién controla esos nombres. El navegador repasa su lista. El nombre de la barra de direcciones debe estar en el certificado. La fecha de hoy debe caer entre las dos fechas. La firma debe llevar a una autoridad en la que el dispositivo ya confía. Y el servidor debe demostrar que tiene la clave privada correspondiente. Si falla cualquiera de esas comprobaciones, el visitante ve la advertencia a pantalla completa.

El cifrado solo empieza cuando todo eso se ha verificado. El candado significa que el servidor demostró quién es, y el cifrado se apoya en esa prueba.

Qué comprueba el inspector

Se conecta dos veces al puerto 443. La primera acepta cualquier cosa, para poder leer el certificado sea cual sea su estado. La segunda lo verifica todo contra una lista estándar de raíces de confianza, como lo haría un cliente estricto.

PruebaResultado
FechasRojo si caducó o aún no es válido. Ámbar con menos de 7 días restantes, una nota con menos de 21 días, verde en los demás casos.
NombresRojo si el nombre de host que escribiste no está cubierto. Ámbar si su gemelo (con o sin www) existe en el DNS pero falta en el certificado.
ConfianzaSi la verificación falla, recibes la causa: caducado, nombre incorrecto, autofirmado, cadena incompleta o el error de verificación tal cual.
Orden de la cadenaÁmbar si los certificados enviados no se firman unos a otros en secuencia.
Clave y firmaRojo para una clave RSA de menos de 2048 bits o una firma SHA-1 o MD5.
ProtocoloRojo si la conexión se negocia con algo anterior a TLS 1.2.

Después pide las cuatro formas de la dirección (http y https, con y sin www) y muestra dónde termina cada una y si el sitio envía una cabecera HSTS. Si quieres ver esa parte salto a salto, el rastreo de redirecciones lo hace.

Funciona en Chrome y falla en todo lo demás

Las autoridades no firman tu certificado con su clave raíz. Lo firman con un certificado intermedio, que a su vez firmó la raíz. Los dispositivos solo guardan raíces, así que tu servidor tiene que enviar el intermedio junto con su propio certificado. Los dos juntos forman la cadena.

Cuando un servidor envía solo su propio certificado, Chrome y Edge de escritorio lo perdonan. Suelen descargar el intermedio que falta o reutilizar uno que vieron en otro sitio. Firefox con un perfil nuevo, los móviles Android antiguos, curl, los webhooks de pago, los servidores de correo y la mayoría de las bibliotecas de programación no te harán ese favor. Así acabas con un sitio que a su dueño le parece perfecto y que falla para un cliente de API. El inspector lo llama Cadena incompleta y lo indica cuando la verificación falla y se envió un solo certificado.

Cómo arreglar los fallos habituales

  • Caducado. Los certificados automáticos se renuevan unos 30 días antes del final, así que si el tuyo caducó, la tarea de renovación lleva semanas fallando. Con Certbot, ejecuta certbot renew --dry-run y lee el error. Suele ser un registro DNS que cambió, un cortafuegos que cierra el puerto 80 o una redirección que se traga /.well-known/acme-challenge/.
  • Nombre no cubierto. Solicita el certificado otra vez e incluye todos los nombres de host: certbot -d example.com -d www.example.com. Un comodín *.example.com cubre un nivel de subdominios. No cubre example.com en sí, algo con lo que tropieza mucha gente.
  • Cadena incompleta. Indica al servidor el archivo de cadena completa. En nginx: ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;. En Apache 2.4.8 y posteriores, SSLCertificateFile acepta el mismo archivo.
  • Autofirmado. Cámbialo por un certificado de una autoridad pública. Let’s Encrypt, ZeroSSL y Google Trust Services los entregan gratis.
  • Protocolo antiguo. Activa TLS 1.2 y 1.3. En nginx: ssl_protocols TLSv1.2 TLSv1.3;

Puedes ver lo mismo desde una terminal con openssl s_client -connect example.com:443 -servername example.com.

El inspector habla con una sola dirección IP en el puerto 443 e informa del protocolo que se negoció, no de todas las versiones que el servidor aceptaría. Un sitio repartido en varios servidores puede presentar otro certificado en otra dirección. No se comprueba la revocación.

Preguntas frecuentes

¿SSL es lo mismo que TLS?

TLS es el nombre actual del protocolo. SSL vino antes, y su última versión se retiró en 2015. La gente sigue diciendo “certificado SSL” por costumbre, pero todos los certificados en uso hoy funcionan con TLS.

¿Cuánto tiempo es válido un certificado SSL?

Los certificados de Let’s Encrypt duran 90 días. Para todas las autoridades públicas, el máximo permitido bajó de 398 a 200 días en marzo de 2026, y baja a 100 días en marzo de 2027 y a 47 días en marzo de 2029. A ese ritmo, renovar a mano deja de ser realista.

Mi certificado es válido. ¿Por qué el navegador sigue diciendo “No seguro”?

Normalmente es una de tres cosas. La página se abrió por http:// y nada la redirige a HTTPS, el certificado no cubre el nombre de host exacto de la barra de direcciones, o la página carga scripts o imágenes por HTTP simple. La tabla de redirecciones del resultado te dirá lo del primer caso.

¿Qué significa ERR_CERT_COMMON_NAME_INVALID?

El nombre de host que visitaste no está en la lista de nombres del certificado. Pasa a menudo con www cuando solo se solicitó el dominio sin prefijo, o con un subdominio nuevo al que se le sirve un certificado por defecto.

¿Un certificado gratuito es menos seguro que uno de pago?

No. El cifrado es idéntico y los navegadores tratan a los dos igual. Lo que se paga es soporte, una garantía o los datos de tu organización dentro del certificado, y los navegadores ya no los muestran de forma destacada.

¿Con cuánta antelación debe renovarse un certificado?

Los clientes automáticos renuevan cuando queda un tercio de la vida del certificado, unos 30 días en uno de 90 días. Si ya solo quedan 7 días, que es donde esta comprobación empieza a avisar, lo más probable es que la automatización haya dejado de funcionar.