En Chrome, al hacer clic en el ícono verde de bloqueo HTTPS se abre una ventana con los detalles del certificado:
Cuando intenté lo mismo con cURL, obtuve solo parte de la información:
$ curl -vvI https://gnupg.org
* Rebuilt URL to: https://gnupg.org/
* Hostname was NOT found in DNS cache
* Trying 217.69.76.60...
* Connected to gnupg.org (217.69.76.60) port 443 (#0)
* TLS 1.2 connection using TLS_DHE_RSA_WITH_AES_128_CBC_SHA
* Server certificate: gnupg.org
* Server certificate: Gandi Standard SSL CA
* Server certificate: UTN-USERFirst-Hardware
> HEAD / HTTP/1.1
> User-Agent: curl/7.37.1
> Host: gnupg.org
> Accept: */*
¿Alguna idea de cómo obtener la información completa del certificado de una herramienta de línea de comandos (cURL u otra)?
ssl
ssl-certificate
curl
Adam Matan
fuente
fuente
curl
con--verbose
muestra el contenido completo del certificado del servidor.Respuestas:
Debería poder usar OpenSSL para su propósito:
Ese comando se conecta al sitio web deseado y canaliza el certificado en formato PEM a otro comando openssl que lee y analiza los detalles.
(Tenga en cuenta que el
-servername
parámetro "redundante" es necesario para haceropenssl
una solicitud con soporte SNI).fuente
OpenSSL> openssl:Error: 'CONNECTED(00000003)' is an invalid command.
openssl
vsopenssl x509 -inform pem -noout -text
). Lo que Pedro escribió funciona bien para mí.echo
por sí mismo es equivalente aecho ''
... envía una cadena vacía a stdout.cat /dev/null |
funcionaría también y es un poco más autoexplicativo.-text
por-enddate
, verifique otras opciones (openssl x509 help
).Solución simple
Ese es mi guión cotidiano:
Salida:
fuente
Depende del tipo de información que desee, pero:
debería darte más, aunque no tan agradablemente legible para los humanos como Chrome lo presenta.
fuente
Las
-p 443
especifica para escanear el puerto 443 solamente. Se omitirán todos los puertos si se omite, y se mostrarán los detalles del certificado de cualquier servicio SSL que se encuentre. El--script ssl-cert
le dice al motor de secuencias de comandos Nmap que ejecute solo lassl-cert
secuencia de comandos. Desde el documento, este script "(r) evoca el certificado SSL de un servidor. La cantidad de información impresa sobre el certificado depende del nivel de detalle".Salida de muestra:
fuente
Para verificar los detalles del certificado SSL, uso la siguiente herramienta de línea de comandos desde que está disponible:
https://github.com/azet/tls_tools
Es bueno verificar que tenga toda la información correcta para volver a emitir certificados o validar los existentes, y también como pocas dependencias Y no requiere configuración.
Así se ven las primeras líneas de la salida:
A esa salida le sigue toda la cadena de certificados con el mismo nivel de detalle.
Lo que me gusta es que en lugar de ser una herramienta cli centrada en SSL como el cliente_s de openssl, esta intenta hacer el trabajo que necesitamos la mayor parte del tiempo. Por supuesto, openssl es más flexible (es decir, también verifica los certificados de clientes, imágenes en puertos impares, etc.), pero no siempre necesito eso.
Alternativamente, si tiene tiempo para profundizar y configurar o apreciar más funciones, existe la herramienta más grande llamada sslyze (no la usa desde dependencias e instalación ...)
fuente
Para completar: si ha instalado en su sistema Java 7 o superior
muestra la cadena (como se sirve) con casi todos los detalles en un formato bastante feo.
Si debería tener Java instalado en su sistema, no respondo.
fuente
Yo uso un script de shell para esto. Es solo un contenedor alrededor del comando openssl que me salva de recordar la sintaxis.
Proporciona opciones para analizar la mayor parte de la información del certificado que normalmente me interesa o para mostrar la salida de openssl sin formato.
Puede consultar un archivo de certificado local o un servidor remoto.
Uso:
Puede obtener el script aquí: http://giantdorks.org/alain/shell-script-to-check-ssl-certificate-info-like-expiration-date-and-subject/
fuente
Si desea hacer esto en Windows, puede usar PowerShell con la siguiente función:
Esto le permite hacer algunas cosas interesantes como
fuente
fuente
Si solo desea la fecha de vencimiento (que no es exactamente la respuesta, pero es 9/10 para lo que las personas usan los detalles del certificado de Chrome), puede usar:
echo | openssl s_client -connect google.com:443 2>/dev/null | openssl x509 -noout -enddate
Útil para guiones, etc.
fuente