GNU/Linux >> Tutoriales Linux >  >> Linux

Uso de openssl para obtener el certificado de un servidor

Si bien estoy de acuerdo con la respuesta de Ari (y la voté a favor :), necesitaba hacer un paso adicional para que funcionara con Java en Windows (donde debía implementarse):

openssl s_client -showcerts -connect www.example.com:443 < /dev/null | openssl x509 -outform DER > derp.der

Antes de agregar el openssl x509 -outform DER conversión, recibí un error de keytool en Windows quejándose del formato del certificado. La importación del archivo .der funcionó bien.


Resulta que aquí hay más complejidad:necesitaba proporcionar muchos más detalles para poner esto en marcha. Creo que tiene algo que ver con el hecho de que es una conexión que necesita la autenticación del cliente, y el protocolo de enlace necesitaba más información para continuar con la etapa en la que se volcaron los certificados.

Aquí está mi comando de trabajo:

openssl s_client -connect host:port -key our_private_key.pem -showcerts \
                 -cert our_server-signed_cert.pem

Esperemos que esto sea un empujón en la dirección correcta para cualquiera que necesite más información.


Una línea para extraer el certificado de un servidor remoto en formato PEM, esta vez usando sed :

openssl s_client -connect www.google.com:443 2>/dev/null </dev/null |  sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'

Con SNI

Si el servidor remoto usa SNI (es decir, comparte varios hosts SSL en una sola dirección IP), deberá enviar el nombre de host correcto para obtener el certificado correcto.

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

Sin SNI

Si el servidor remoto no usa SNI, puede omitir -servername parámetro:

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


Para ver los detalles completos del certificado de un sitio, también puede usar esta cadena de comandos:

$ echo | \
    openssl s_client -servername www.example.com -connect www.example.com:443 2>/dev/null | \
    openssl x509 -text

Linux
  1. Uso de Stratis para administrar el almacenamiento de Linux desde la línea de comandos

  2. Let's Encrypt:obtenga un certificado SSL gratuito con Certbot

  3. Usando Reddit desde la consola en 2020

  4. ¿Cómo obtener la cantidad de CPU en Linux usando C?

  5. ¿Cómo obtener el sistema operativo actual en MSBuild?

Cómo instalar la última versión de OpenSSL desde Source en Linux

Conozca su Sistema (usando la línea de comando)

Cómo generar certificados SSL autofirmados usando OpenSSL

Cómo obtener el mejor rendimiento del servidor Nginx

RabbitMQ:obtenga mensajes de una cola usando curl

¿Cómo puedo obtener mensajes de registro del servidor LAMP en Ubuntu 10.04?