Si administras un sitio web o servidor, comprobar tu certificado SSL/TLS regularmente es una de esas tareas que no puedes permitirte omitir. Un certificado caducado o mal configurado significa advertencias del navegador, pérdida de confianza y posibles interrupciones del servicio.

OpenSSL — el conjunto de herramientas de código abierto de línea de comandos utilizado prácticamente en todas las distribuciones de Linux, en sistemas macOS, y disponible también en Windows — te ofrece acceso directo y sin filtros a los detalles del certificado. Sin necesidad de navegador. Sin herramientas de terceros. Solo una terminal y algunos comandos breves.
Esta guía cubre los comandos de OpenSSL que usarás con más frecuencia: ver detalles del certificado, comprobar fechas de caducidad, inspeccionar servidores remotos, validar cadenas de certificados y confirmar que tu clave privada coincide con tu certificado. Cada comando está listo para copiar y pegar, con una explicación clara de lo que hace.
¿Prefieres trabajar desde el navegador? El SSL Checker devuelve los mismos detalles del certificado: cadena, caducidad, conjuntos de cifrado y una calificación de seguridad, a partir de solo un nombre de dominio, sin necesidad de terminal, o también puedes leer el certificado tú mismo en Chrome, Firefox, Safari o Edge. Esta guía cubre todo lo que preferirías hacer desde la línea de comandos.
Tabla de contenidos
- Requisitos previos: comprueba tu versión de OpenSSL
- Ver los detalles completos del certificado con openssl x509
- Comprobar el certificado de un servidor remoto con openssl s_client
- Verificar las fechas de caducidad del certificado
- Validar la cadena de certificados con openssl verify
- Confirmar que tu clave privada coincide con tu certificado
- Convertir entre formatos de certificado
- Solución de errores comunes de certificados
- Mantén tus certificados bajo control
¡Ahorra un 10% en Certificados SSL al hacer tu pedido en SSL Dragon hoy mismo!
Emisión rápida, encriptación fuerte, 99,99% de confianza del navegador, soporte dedicado y garantía de devolución del dinero en 25 días. Código del cupón: AHORRA10
Requisitos previos: comprueba tu versión de OpenSSL
Antes de ejecutar cualquier comando, confirma que OpenSSL esté instalado y comprueba qué versión estás usando. Tu versión determina qué protocolos y algoritmos están disponibles.
openssl version –a
Esto muestra el número de versión, la fecha de lanzamiento y el directorio predeterminado de certificados (OPENSSLDIR). La mayoría de los sistemas Linux vienen con OpenSSL preinstalado. En macOS, se incluye LibreSSL (una bifurcación de OpenSSL), que maneja los mismos comandos.
Si usas Windows, puedes acceder a OpenSSL a través de WSL (Windows Subsystem for Linux), Git Bash, o una compilación independiente para Windows.
Consejo: Asegúrate de estar ejecutando al menos OpenSSL 1.1.1 o una versión posterior. Las versiones más antiguas carecen de soporte para TLS 1.2 y TLS 1.3, requeridos por los servidores y navegadores modernos.
Ver los detalles completos del certificado con openssl x509
El comando openssl x509 es el caballo de batalla para la inspección de certificados. Lee certificados X.509, el formato estándar utilizado por todos los certificados SSL/TLS, y muestra los detalles en un formato legible para humanos.
Para ver los detalles completos de un archivo de certificado almacenado localmente:
openssl x509 -in certificate.crt -text -noout
Esto es lo que hace cada opción:
- -in certificate.crt — Especifica el archivo de certificado de entrada. Sustitúyelo por tu nombre de archivo real (por ejemplo, yourdomain.crt o server.pem).
- -text — Muestra el certificado en formato de texto legible en lugar de datos codificados sin procesar.
- -noout — Evita que OpenSSL imprima el bloque PEM codificado en Base64 junto con la salida de texto.
Este comando revela todo sobre el certificado:
- Extensiones — Incluyendo Nombres Alternativos del Sujeto (SAN), Uso de Clave y Acceso a Información de la Autoridad.
- Emisor — La Autoridad de Certificación (CA) que lo firmó (por ejemplo, DigiCert, Let’s Encrypt, Sectigo).
- Sujeto — El dominio u organización para el que se emitió el certificado.
- Período de validez — Las fechas «Not Before» y «Not After» que muestran cuándo está activo el certificado.
- Algoritmo y tamaño de la clave pública — Generalmente RSA de 2048 bits o ECDSA P-256.
- Algoritmo de firma — Habitualmente sha256WithRSAEncryption para los certificados modernos.
Comprobar solo el emisor o el sujeto
Si no necesitas la salida completa, puedes extraer campos específicos:
openssl x509 -in certificate.crt -noout -issuer
openssl x509 -in certificate.crt -noout -subject
Estos comandos de una línea son especialmente útiles cuando estás escribiendo scripts o simplemente necesitas una confirmación rápida.
Nota: OpenSSL espera el formato PEM por defecto — estos son archivos de texto que comienzan con —–BEGIN CERTIFICATE—–. Si tu certificado está en formato DER (binario), añade la opción -inform der:
openssl x509 -in certificate.der -inform der -text -noout
Comprobar el certificado de un servidor remoto con openssl s_client
No siempre tienes el archivo de certificado en tu máquina local. A menudo, necesitas inspeccionar el certificado instalado en un servidor en producción. Ahí es donde entra en juego openssl s_client.
openssl s_client -connect yourdomain.com:443 -servername yourdomain.com
Este comando abre una conexión TLS al servidor en el puerto 443 (el puerto HTTPS predeterminado) y muestra la cadena de certificados, la versión del protocolo, el conjunto de cifrado y los detalles de la sesión.
La opción -servername habilita la Indicación del Nombre del Servidor (SNI), esencial cuando el servidor alberga varios dominios en la misma dirección IP. Sin ella, podrías recibir el certificado equivocado.
Pulsa CTRL+C para cerrar la conexión después de ver la salida.
¿No tienes una terminal a mano, o quieres una comprobación más rápida? Nuestro SSL Checker te permite comprobar un certificado sin OpenSSL. Pega el dominio y obtén la cadena, la caducidad y los detalles del cifrado en tu navegador.
Combínalo con una tubería (pipe) para una salida más limpia
La salida sin procesar de s_client es extensa. Para extraer solo los detalles del certificado, redirígela hacia openssl x509:
echo | openssl s_client -servername yourdomain.com -connect yourdomain.com:443 2>/dev/null | openssl x509 -noout -text
El echo | al principio envía una entrada vacía para que la conexión se cierre automáticamente. El 2>/dev/null suprime los mensajes de error, dándote una salida limpia.
También puedes limitarlo a campos específicos:
echo | openssl s_client -servername yourdomain.com -connect yourdomain.com:443 2>/dev/null | openssl x509 -noout -issuer -subject -dates
Este comando de una línea es uno de los favoritos entre los administradores de sistemas. Muestra el emisor, el sujeto y las fechas de validez en una sola pasada.
Guardar el certificado localmente
Si quieres guardar el certificado remoto en un archivo para un análisis posterior:
echo | openssl s_client -servername yourdomain.com -connect yourdomain.com:443 2>/dev/null | openssl x509 > yourdomain.pem
Ahora puedes ejecutar cualquier comando openssl x509 sobre el archivo guardado.
Verificar las fechas de caducidad del certificado
Los certificados caducados son una de las causas más comunes de errores SSL. OpenSSL te ofrece varias formas de comprobar la caducidad.
Comprobación rápida de fechas
openssl x509 -in certificate.crt -noout -dates
Esto muestra tanto la fecha «Not Before» (fecha de inicio) como la fecha «Not After» (fecha de finalización). Si solo necesitas la caducidad:
openssl x509 -in certificate.crt -noout -enddate
Para servidores remotos
Combina s_client y x509 para comprobar la caducidad del certificado de un servidor en producción:
echo | openssl s_client -servername yourdomain.com -connect yourdomain.com:443 2>/dev/null | openssl x509 -noout -enddate
Automatiza alertas de caducidad con -checkend
La opción -checkend es algo que la mayoría de las guías pasa por alto, pero resulta increíblemente útil para la automatización. Comprueba si el certificado caducará dentro de un número específico de segundos y devuelve un código de salida:
openssl x509 -in certificate.crt -noout -checkend 2592000
El valor 2592000 equivale a 30 días en segundos. Si el certificado caduca dentro de 30 días, el comando devuelve un código de salida distinto de cero y muestra una advertencia. Si el certificado sigue siendo válido más allá de ese plazo, devuelve cero.
Esto facilita su integración en tareas cron, scripts de monitoreo o pipelines de CI/CD:
if ! openssl x509 -in certificate.crt -noout -checkend 2592000 > /dev/null 2>&1; then
echo "WARNING: Certificate expires within 30 days!"
fi
Por qué importa esto: Con el Foro CA/Browser avanzando hacia ciclos de vida de certificados de 47 días para 2029, el monitoreo automatizado de caducidad ya no es opcional, es una necesidad. Incorporar estas comprobaciones a tu infraestructura ahora te ahorrará interrupciones más adelante.
Validar la cadena de certificados con openssl verify
Un certificado no funciona de forma aislada. Los navegadores y clientes validan toda la cadena de certificados, una secuencia que comienza con el certificado de tu servidor, pasa por uno o más certificados de CA intermedios, y termina en un certificado raíz de CA de confianza.
Si la cadena está rota o incompleta, los visitantes verán un error de «no confiable» aunque el certificado en sí sea válido.
Para validar un certificado contra el almacén de CA de confianza del sistema:
openssl verify certificate.crt
Si muestra certificate.crt: OK, la cadena está completa y es válida.
Cuando los certificados intermedios están separados
Si tu certificado de CA intermedio está en un archivo separado (algo común con muchos proveedores de CA, incluido DigiCert), usa la opción -untrusted:
openssl verify -untrusted intermediate.crt certificate.crt
La opción -untrusted indica a OpenSSL que use el certificado intermedio proporcionado durante la construcción de la cadena, sin añadirlo de forma permanente al almacén de confianza.
Ver la cadena completa desde un servidor remoto
Para ver cada certificado de la cadena desde un servidor en producción:
openssl s_client -connect yourdomain.com:443 -servername yourdomain.com -showcerts
La opción -showcerts muestra cada certificado de la cadena en formato PEM. Este es el comando de referencia para diagnosticar problemas de cadena, como certificados intermedios faltantes o un orden incorrecto.
¿Prefieres una comprobación visual, con un solo clic? Nuestro SSL Checker verificará la cadena de certificados para cualquier dominio y señalará automáticamente los certificados intermedios faltantes.
Confirmar que tu clave privada coincide con tu certificado
Después de instalar un certificado, uno de los errores más comunes es una discrepancia de clave privada. El servidor web no se iniciará (o mostrará una conexión rota) si la clave privada no corresponde a la clave pública del certificado.
Así se verifica la coincidencia. Ambos comandos extraen el módulo, un valor matemático compartido, y lo calculan como hash:
openssl x509 -noout -modulus -in certificate.crt | openssl md5
openssl rsa -noout -modulus -in privatekey.key | openssl md5
Si los hashes MD5 son idénticos, la clave privada y el certificado forman un par válido. Si son diferentes, algo está mal. Puede que tengas la clave equivocada, o que el certificado se haya reemitido con un nuevo par de claves.
También puedes extender esta comprobación para incluir tu CSR (Solicitud de Firma de Certificado):
openssl req -noout -modulus -in request.csr | openssl md5
La comprobación del módulo te dice si los tres archivos pertenecen entre sí, pero no lo que realmente declara la CSR. Para leer sus propios campos, ejecuta openssl req -in yourCSR.csr -noout -text, o pega la solicitud en nuestro decodificador de CSR.
Los tres: certificado, clave privada y CSR, deberían devolver el mismo hash.
¿No estás en una máquina con OpenSSL a mano? Nuestro Certificate Key Matcher realiza la misma comparación en tu navegador, y también funciona con claves ECDSA, donde la comprobación del módulo falla.
Convertir entre formatos de certificado
Diferentes servidores y plataformas requieren diferentes formatos de certificado. Apache y Nginx usan PEM, mientras que Windows IIS y Tomcat suelen necesitar PKCS#12 (.pfx). Estas son las conversiones más comunes:
De DER a PEM:
openssl x509 -inform der -in certificate.der -out certificate.pem
De PEM a DER:
openssl x509 -outform der -in certificate.pem -out certificate.der
De PEM a PKCS#12 (.pfx):
openssl pkcs12 -export -out certificate.pfx -inkey privatekey.key -in certificate.crt -certfile ca-bundle.crt
De PKCS#12 a PEM:
openssl pkcs12 -in certificate.pfx -out certificate.pem -nodes
La opción -nodes exporta la clave privada sin cifrado por contraseña. Elimínala si quieres una salida protegida con frase de contraseña.
Bueno saberlo: Los archivos de certificado con extensiones .crt, .cer y .pem pueden estar todos en formato PEM. La extensión por sí sola no indica la codificación; revisa el contenido del archivo. Si empieza con —–BEGIN, es PEM. Si es un galimatías binario, es DER.
Para una conversión puntual en una máquina sin OpenSSL, el SSL Converter maneja PEM, DER, PFX y P7B en el navegador y divide un archivo PFX en certificado, cadena y clave.
Solución de errores comunes de certificados
Cuando algo sale mal, la salida de OpenSSL suele indicarte dónde está el problema. Aquí tienes una referencia rápida para los problemas más frecuentes:
«unable to get local issuer certificate». La cadena de certificados está incompleta. Falta el certificado intermedio en la configuración de tu servidor. Obtén el paquete de CA correcto de tu proveedor de certificados y configúralo junto con el certificado de tu servidor.
«certificate has expired». Exactamente lo que parece indicar. La fecha «Not After» del certificado ya pasó. Renuévalo y reemplázalo inmediatamente.
«certificate signature failure». El certificado fue modificado o dañado después de firmarse. Vuelve a descargarlo desde tu proveedor de CA o vuelve a emitirlo.
«key values mismatch». La clave privada y el certificado no corresponden entre sí. Ejecuta la comparación de módulo de la sección anterior para confirmarlo, luego localiza la clave correcta o genera una nueva CSR.
«self-signed certificate». OpenSSL no puede rastrear el certificado hasta una CA raíz de confianza. Esto es de esperar en certificados autofirmados usados en desarrollo. Para producción, asegúrate de tener un certificado emitido por una Autoridad de Certificación de confianza pública.
«hostname mismatch». El dominio al que te estás conectando no coincide con el Nombre Común (CN) o el Nombre Alternativo del Sujeto (SAN) listado en el certificado. Comprueba los SAN con:
openssl x509 -in certificate.crt -noout -ext subjectAltName
Mantén tus certificados bajo control
Comprobar certificados con OpenSSL es algo que harás repetidamente a lo largo del ciclo de vida del certificado: durante la instalación, después de la renovación y cada vez que algo se rompa. Estos comandos son la forma más rápida de diagnosticar problemas y verificar que todo esté configurado correctamente.
Para una comprobación rápida sin abrir una terminal, pasa el dominio por nuestro SSL Checker y obtén su calificación de seguridad SSL además del desglose completo del certificado, la cadena y el cifrado en segundos.
Pero las comprobaciones manuales solo escalan hasta cierto punto. Si administras múltiples certificados en distintos servidores, necesitas un proceso de gestión de certificados confiable, especialmente ahora que los ciclos de vida de los certificados siguen reduciéndose y el margen de error se hace cada vez más estrecho.
¿Necesitas certificados SSL de confianza? SSL Dragon ofrece una amplia selección de certificados SSL/TLS de las principales Autoridades de Certificación como DigiCert, Sectigo y Thawte, con precios competitivos, emisión rápida y soporte dedicado. Ya sea que necesites un certificado de un solo dominio o una solución multidominio de nivel empresarial, encontrarás la opción adecuada.
Ahorre un 10% en certificados SSL al realizar su pedido hoy mismo.
Emisión rápida, cifrado potente, 99,99% de confianza del navegador, asistencia dedicada y garantía de devolución del dinero en 25 días. Código del cupón: SAVE10






