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ón | Significado |
|---|---|
| -connect host:443 | Where to open the TLS connection. |
| -servername <host> | The SNI name. Without it a shared host serves its default certificate. |
| -showcerts | Print the whole chain the server sent, not just the leaf. |
| -tls1_2 / -tls1_3 | Force one protocol version, to test what the server still accepts. |
| -verify_return_error | Fail instead of continuing when the chain does not validate. |
| < /dev/null | Close 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 -datesWhen the certificate expires.
openssl s_client -connect example.com:443 -showcerts < /dev/nullInspect 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