Comprobar un certificado SSL: escudo con marca de verificación verde y candados sobre un portátil
Comprobar un certificado SSL paso a paso: del navegador a OpenSSL y las herramientas online.

Cómo Comprobar un Certificado SSL Paso a Paso

Cada día confiamos datos sensibles a servicios en línea: banca, mensajería, correo, compras, pedidos a domicilio. El certificado SSL cifra la comunicación entre tu navegador y el servidor mediante el protocolo TLS/SSL. Además permite comprobar que el sitio al que te conectas es realmente quien dice ser. Por eso, saber comprobar un certificado SSL —el tuyo o el de cualquier dominio— es una destreza básica de seguridad defensiva.

En esta guía recorremos las formas de verificar un certificado SSL, de la más rápida a la más completa: la inspección manual desde el navegador, la verificación por línea de comandos con OpenSSL, los escáneres de terminal, las herramientas online vigentes y un checklist con los errores más comunes. El enfoque es siempre de auditoría: verificar y endurecer, no explotar.

En resumen: Para comprobar un certificado SSL tienes tres vías: la inspección manual desde el navegador (el candado), la línea de comandos con OpenSSL (openssl s_client y x509) y las herramientas online como Qualys SSL Labs. Con ellas revisas en segundos la vigencia, la cadena de confianza, la coincidencia del dominio y la versión de TLS.

Qué es y cómo funciona un certificado SSL

Técnicamente, un certificado SSL es un archivo emitido por una autoridad de certificación (CA) que contiene información técnica en su interior:

  • número de serie
  • datos sobre el emisor (la CA)
  • datos sobre el propietario
  • período de validez
  • algoritmos de cifrado

Ese archivo se instala en un directorio específico del servidor y habilita el acceso cifrado a sus servicios. Al conectarte, se establece una conexión HTTPS, que es la extensión del protocolo HTTP que soporta conexiones cifradas. El intercambio entre servidor y cliente sigue este esquema:

  • El cliente se conecta a un servidor protegido por un certificado SSL y solicita identificación.
  • El servidor envía al cliente una copia del certificado instalado.
  • En el lado del cliente comienza la verificación de la autenticidad del certificado. Se realiza una comprobación contra la autoridad de certificación; si el certificado es de confianza, se recibe la confirmación.
  • Cliente y servidor acuerdan una clave simétrica, que se usará durante toda la sesión.
  • Se transmiten y reciben datos de forma cifrada hasta que la conexión se interrumpe, por ejemplo cuando el usuario abandona el sitio.

Aunque la secuencia parezca larga, con una conexión estable todo el procedimiento toma apenas unos milisegundos, imperceptibles para el usuario. La conexión resultante queda protegida frente a escuchas y modificación del tráfico.

Para qué comprobar un certificado SSL

Comprobar el certificado cubre una parte crítica de la conexión —identidad, vigencia e instalación correcta—, aunque no agota toda la seguridad de una configuración HTTPS, que depende además del software del servidor y de los cifrados habilitados.

Un certificado en regla también influye en el posicionamiento, porque los motores de búsqueda penalizan los sitios sin HTTPS correcto. Por eso conviene asegurarse de que siga vigente y esté bien instalado.

Hay dos caminos: la comprobación manual desde el navegador y las herramientas —de línea de comandos o web— que dan un diagnóstico técnico detallado.

Verificación manual desde el navegador

La comprobación más rápida está en la barra de direcciones. Si ves el candado seguido de https:// antes del dominio, el navegador estableció la conexión HTTPS sin advertencias de certificado. Si el certificado no es válido o hay alguna inconsistencia, el navegador advierte al usuario sobre una posible amenaza de seguridad. El candado es una de las señales para saber si un sitio web es de confianza.

Al hacer clic en el candado obtienes más información sobre el certificado: la CA emisora, el período de validez y el detalle de la conexión cifrada. Es suficiente para un vistazo puntual, pero cuando administras varios dominios o necesitas inspeccionar la cadena, los cifrados o las versiones de TLS, hay que bajar a la línea de comandos.

Verificar un certificado SSL con OpenSSL

OpenSSL es la herramienta de referencia para inspeccionar certificados desde la terminal. Es la misma herramienta con la que también puedes crear primitivas criptográficas. Los comandos siguientes están comprobados en OpenSSL 3.x. Sustituye <dominio> por el dominio a verificar.

Ver el certificado de un sitio

echo | openssl s_client -connect <dominio>:443 -servername <dominio> 2>/dev/null | openssl x509 -noout -text

Qué hace cada flag:

  • -connect <dominio>:443: conecta al servidor HTTPS en el puerto 443.
  • -servername <dominio>: envía el SNI (Server Name Indication), necesario en servidores con múltiples dominios.
  • 2>/dev/null: silencia los errores de stderr.
  • -noout: no muestra el certificado codificado en base64.
  • -text: imprime la información completa en formato legible.

Así es como compruebas el certificado SSL de un dominio concreto directamente contra el servidor, sin intermediarios.

Terminal mostrando cómo comprobar un certificado SSL con openssl s_client
Salida de openssl x509 -text: emisor, validez, dominio y SAN del certificado.

Extraer fechas de validez, emisor y SAN

echo | openssl s_client -connect <dominio>:443 -servername <dominio> 2>/dev/null | openssl x509 -noout -dates -issuer -subject -ext subjectAltName
  • -dates: fechas notBefore y notAfter (validez).
  • -issuer: autoridad certificadora emisora (CA).
  • -subject: titular y Common Name (CN).
  • -ext subjectAltName: los Subject Alternative Names (SAN).

Para el algoritmo de firma, filtra la salida completa con -text | grep -A1 'Signature Algorithm'. Y si solo te interesan las fechas:

echo | openssl s_client -connect <dominio>:443 2>/dev/null | openssl x509 -noout -dates

Inspeccionar la cadena presentada por el servidor

openssl s_client -showcerts -connect <dominio>:443 -servername <dominio>
  • -showcerts: muestra la lista de certificados que envía el servidor (el del sitio y los intermedios).
  • Cada certificado aparece entre -----BEGIN CERTIFICATE----- y -----END CERTIFICATE-----; sirve para revisar qué presenta el servidor y detectar si falta algún intermedio.

Para que el comando corte con error cuando la verificación de la cadena falla:

echo | openssl s_client -connect <dominio>:443 -verify_return_error 2>/dev/null
  • -verify_return_error: devuelve error si la verificación de la cadena falla.

Comprobar las versiones de TLS soportadas

# TLS 1.3 (recomendado)
echo | openssl s_client -connect <dominio>:443 -tls1_3 2>/dev/null | grep -E 'Protocol|Cipher'

# TLS 1.2 (mínimo aceptable)
echo | openssl s_client -connect <dominio>:443 -tls1_2 2>/dev/null | grep -E 'Protocol|Cipher'

# TLS 1.1 (normalmente DESHABILITADO)
echo | openssl s_client -connect <dominio>:443 -tls1_1 2>&1 | grep -E 'error|Protocol'

# TLS 1.0 (DESACTIVADO en 2026)
echo | openssl s_client -connect <dominio>:443 -tls1 2>&1 | grep -E 'error|Protocol'

Si una versión devuelve error, no lo interpretes de forma aislada: puede estar deshabilitada en el servidor o limitada por la configuración local de OpenSSL. TLS 1.2 es el mínimo razonable hoy y TLS 1.3 el recomendado; TLS 1.0 y 1.1 deberían estar desactivados. De hecho, a partir de OpenSSL 3.0 vienen deshabilitadas por defecto (nivel de seguridad SECLEVEL=1); para probarlas hay que bajar a SECLEVEL=0.

Verificar un certificado en un archivo local

Cuando el certificado está en un archivo .crt o .pem y no en un servidor en vivo:

# Información completa
openssl x509 -in certificado.pem -noout -text

# Solo fechas, emisor y asunto
openssl x509 -in certificado.crt -noout -dates -issuer -subject

# ¿Sigue válido?
openssl x509 -in certificado.pem -checkend 0 && echo 'Certificado VALIDO' || echo 'Certificado EXPIRADO'

# ¿Expira en las próximas 24 h?
openssl x509 -in certificado.pem -checkend 86400 && echo 'No expira hoy' || echo 'EXPIRA en 24h'
  • -checkend <segundos>: comprueba si el certificado expira dentro de N segundos. 86400 equivale a 24 horas. Es la forma más directa de comprobar la caducidad de un certificado SSL desde un script.

Cambios a tener en cuenta en OpenSSL 3.x

Dos cambios de la rama 3.x afectan a estas comprobaciones.

El primero ya lo vimos: TLS 1.0 y 1.1 vienen deshabilitadas por defecto (SECLEVEL=1) y requieren bajar a SECLEVEL=0 para poder probarlas. El segundo es que el antiguo soporte de motores (-engine) quedó deprecado en OpenSSL 3.0 en favor de -provider.

Ambos cambios están documentados en la guía de migración a OpenSSL 3.0 del propio proyecto.

Verificar un certificado SSL en Linux

En un sistema Linux puedes inspeccionar tanto los certificados instalados como el almacén de CA de confianza.

# Buscar certificados en los almacenes del sistema
find /etc/ssl -name '*.crt' -o -name '*.pem' | head -20

# Verificar un certificado concreto
openssl x509 -in /etc/ssl/certs/<certificado>.crt -noout -dates -issuer -subject

# Revisar de un tirón cuáles han caducado
for cert in /etc/ssl/certs/*.crt; do
  openssl x509 -in "$cert" -checkend 0 -noout && echo "$cert: VALIDO" || echo "$cert: EXPIRADO"
done

Para revisar el almacén de CA y validar un certificado contra él:

# Almacén principal de CA
ls /etc/ssl/certs/

# Certificado raíz unificado
ls -la /etc/ssl/certs/ca-certificates.crt

# Verificar un certificado contra todas las CA del sistema
openssl verify -CAfile /etc/ssl/certs/ca-certificates.crt certificado.pem

# Verificar contra una CA raíz específica
openssl verify -CAfile /etc/ssl/certs/<ca-raiz>.crt certificado.pem

/etc/ssl/certs/ es el directorio principal de certificados, ca-certificates.crt reúne todas las CA raíz del sistema y openssl verify confirma si el certificado está firmado por una CA de confianza. Estas rutas corresponden a sistemas basados en Debian/Ubuntu (incluidos Kali y Parrot, habituales en pentesting); en RHEL, Fedora u openSUSE los equivalentes son /etc/pki/tls/certs/ca-bundle.crt y el almacén gestionado con update-ca-trust.

Escáneres SSL/TLS de línea de comandos

Más allá de OpenSSL, hay tres escáneres de código abierto que automatizan la auditoría completa de la configuración SSL/TLS de un servidor.

SSLyze

SSLyze es una herramienta de línea de comandos para escanear servidores SSL/TLS: analiza la configuración del servidor e identifica vulnerabilidades y configuraciones erróneas. Está probada en Debian, macOS y Windows. La instalación más directa es con pip:

pip install --upgrade setuptools
pip install --upgrade sslyze

O clonando el repositorio:

git clone https://github.com/nabla-c0d3/sslyze
cd sslyze
pipenv install --dev
pipenv shell

SSLScan

SSLScan está diseñado para ser rápido y sencillo. La salida incluye los cifrados preferidos del servicio SSL/TLS, con formatos de texto y XML, y soporta TLS SNI cuando se usa con una versión compatible de OpenSSL. Su instalación:

apt install sslscan

testssl.sh

testssl.sh es una herramienta gratuita de línea de comandos que comprueba prácticamente todas las vulnerabilidades principales (Heartbleed, CRIME, BREACH, POODLE, BEAST, etc.). El script es portátil y compatible con Linux, macOS y FreeBSD. Lo clonamos del repositorio:

git clone --depth 1 https://github.com/testssl/testssl.sh.git

Desde la carpeta del repositorio clonado, para probar todas las vulnerabilidades sobre un sitio:

./testssl.sh -U https://sitioweb.com

Y para comprobar una vulnerabilidad concreta —por ejemplo Heartbleed:

./testssl.sh -B https://sitioweb.com

Cubrimos esta herramienta en profundidad en nuestra guía dedicada a auditar SSL/TLS con testssl.sh.

Comprobar un certificado SSL online: herramientas

Si prefieres un veredicto visual sin pasar por la terminal, estos servicios web hacen el diagnóstico desde el navegador. Sirven igual para comprobar el certificado SSL de una web ajena que el de tu propio dominio.

Los siguientes siguen activos:

  • Qualys SSL Labs (SSL Server Test). El análisis más exhaustivo de esta lista. Evalúa el certificado, el soporte de protocolos, el intercambio de claves y la robustez del cifrado, y otorga una calificación. Simula además el establecimiento de conexión desde distintos navegadores y versiones. Imprescindible al configurar una URL segura nueva o en una auditoría.
  • SSL Shopper (SSL Checker). Verificación rápida del tipo de servidor, el período de validez, el SAN y la cadena de confianza. Excelente para detectar de un vistazo un error en la cadena o una instalación defectuosa; además permite configurar un recordatorio con 30 días de antelación al vencimiento del certificado.
  • ImmuniWeb SSL Security Test. Orientado a seguridad: identifica problemas tanto del certificado como del software del servidor, y comprueba el cumplimiento de estándares como PCI DSS, HIPAA y NIST. Actualmente incorpora además verificación de preparación para criptografía post-cuántica (PQC).
  • GlobalSign SSL Check. Información muy detallada del servidor web y la configuración SSL, con puntuación según certificado, protocolos, intercambio de claves y cifrado.
Resultado de Qualys SSL Labs al comprobar un certificado SSL online
Informe de Qualys SSL Labs: calificación, certificado y protocolos soportados.

Checklist: qué revisar al comprobar un certificado SSL

PuntoQué verificarCómo
Validez / expiraciónFechas notBefore y notAfter-dates
Cadena presentadaCertificados que envía el servidor e intermedios presentes-showcerts
CA emisoraAutoridad certificadora-issuer
Coincidencia de dominioEl SAN incluye el dominio consultado-ext subjectAltName
Algoritmo de firma seguroSHA256/384/512; evitar SHA1/MD5-text
Versión de TLSTLS 1.2 mínimo, TLS 1.3 recomendado-tls1_2 / -tls1_3
RevocaciónURL del responder OCSP-ocsp_uri

Errores comunes al comprobar un certificado SSL

Cuando algo falla, estos son los errores de SSL más comunes y cómo se diagnostican:

ErrorDiagnósticoMensaje típico asociado
Certificado expiradonotAfter anterior a hoy (-checkend 0)certificate has expired
Cadena incompletaCon -showcerts faltan intermediosunable to get intermediate certificate
Nombre que no coincideEl SAN/CN no incluye el dominiohostname does not match certificate
Certificado autofirmadoIssuer = Subject, sin CA externaself-signed certificate
CA no confiableNo firmado por una CA del almacén del sistemaunable to get local issuer certificate
Versión de TLS deshabilitadaEl servidor no soporta esa versiónno protocols available

Automatizar la comprobación de revocación

Verificar muchos certificados a mano no escala. Para comprobar de forma automatizada el estado de revocación de un certificado existe un script listo en GitHub. Lo descargamos:

wget https://raw.githubusercontent.com/o-pod/security/master/ssl-check-revoc.sh

Le damos permisos de ejecución:

chmod a+x ssl-check-revoc.sh

Y consultamos el dominio que nos interese (sustituyendo mydomain.com por el dominio real):

./ssl-check-revoc.sh mydomain.com -v

El script comprueba si el certificado figura en las listas de revocación (CRL): devuelve 0 si no está revocado, 1 si lo está y 2 ante un error; el flag -v añade el detalle del proceso. Se puede integrar en una verificación periódica o conectar a un sistema de monitoreo como Zabbix para detectar una revocación antes de que la note un usuario.

Vulnerabilidades históricas de SSL/TLS

La seguridad de la conexión no depende solo del certificado: también del software del servidor y de los algoritmos de cifrado habilitados, algunos de los cuales arrastran vulnerabilidades conocidas. Conviene descartarlas en una auditoría:

  • POODLE (Padding Oracle On Downgraded Legacy Encryption), de 2014, asociada al uso de SSLv3: permite a un atacante capturar y modificar tráfico. Si el servidor aún acepta SSLv3, hay que deshabilitarlo.
  • FREAK (Factoring RSA Export Keys), de 2015, ligada a las claves RSA de exportación: permite acceder a los datos transmitidos manipulando las claves criptográficas.
  • LogJam, también de 2015 y similar a FREAK, pero degradando el intercambio Diffie-Hellman a nivel de exportación; con claves de 512 bits y números primos reutilizados, el tráfico podía descifrarse.

Las tres se comprueban con testssl.sh. Por ejemplo, para FREAK:

./testssl.sh -F mydomain.com

Si la salida indica not vulnerable (OK), esa vulnerabilidad está ausente. El detalle de cómo auditar todas estas comprobaciones lo cubrimos en nuestra guía de testssl.sh.

Comprobación en Qualys SSL Labs sin POODLE, Heartbleed ni ROBOT
Protocol Details de Qualys SSL Labs: POODLE, Heartbleed y ROBOT no vulnerables.

SSL como rutina de auditoría

Comprobar un certificado SSL es una verificación básica de protección de la información, útil tanto para desarrolladores y administradores que quieren garantizar la seguridad de sus servicios como para usuarios que desean asegurarse de que la interacción con un sitio es segura.

Con la inspección manual resuelves el caso puntual; con OpenSSL y los escáneres de terminal obtienes el detalle técnico completo; y con las herramientas online tienes un veredicto visual rápido. La combinación de las tres es lo que convierte la verificación en una rutina de auditoría fiable.

El siguiente paso natural es auditar la configuración TLS del servidor.

Mi Carro Close (×)

Tu carrito está vacío
Ver tienda