Inicio·Comandos de terminal

openssl s_client

Red

Uso

openssl s_client -connect <host>:443 -servername <host>

Abre una conexion TLS en crudo para inspeccionar el certificado y el saludo; sin `-servername`, un servidor con muchos sitios en una direccion te entrega su certificado por defecto, y sin `< /dev/null` se queda esperando entrada.

Opciones habituales

OpciónSignificado
-connect host:443Where to open the TLS connection.
-servername <host>The SNI name. Without it a shared host serves its default certificate.
-showcertsPrint the whole chain the server sent, not just the leaf.
-tls1_2 / -tls1_3Force one protocol version, to test what the server still accepts.
-verify_return_errorFail instead of continuing when the chain does not validate.
< /dev/nullClose stdin, or the command sits and waits forever.

Ejemplos

openssl s_client -connect example.com:443 -servername example.com < /dev/null 2>/dev/null | openssl x509 -noout -dates

When the certificate expires.

openssl s_client -connect example.com:443 -showcerts < /dev/null

Inspect the full chain for a missing intermediate.

Cuando falla una conexión, estos acotan hasta dónde llegó: el nombre no resuelve, no hay ruta o el puerto está cerrado.

Cómo leerlo

  • Los corchetes [ ] marcan una parte que puedes omitir.
  • Los puntos suspensivos … indican que puedes poner varios.
  • Las opciones distinguen mayúsculas: en algunos comandos -r y -R no hacen lo mismo.

Preguntas

Q. ¿Qué hace openssl s_client?

Abre una conexion TLS en crudo para inspeccionar el certificado y el saludo; sin `-servername`, un servidor con muchos sitios en una direccion te entrega su certificado por defecto, y sin `< /dev/null` se queda esperando entrada.

Q. ¿Cómo se escribe?

openssl s_client -connect <host>:443 -servername <host> — los corchetes marcan lo que puedes omitir.

Q. ¿Cuántas opciones vale la pena saber?

Aquí van 6; la lista completa está en man openssl. Este comando está en Red.

Comandos relacionados

página man: man openssl-s_client