Listar todos los certificados de SSL disponibles


35

Mi cliente git afirma

error: Peer's Certificate issuer is not recognized.

Eso significa que no puede encontrar la clave del servidor SSL correspondiente en el conjunto de claves del sistema global. Quiero verificar esto mirando la lista de todas las claves ssl disponibles en todo el sistema en un sistema gentoo linux. ¿Cómo puedo obtener esta lista?

Respuestas:


65

Lo que desea no son las claves SSL, son las autoridades de certificación y, más precisamente, sus certificados.

Tu podrías intentar:

awk -v cmd='openssl x509 -noout -subject' '
    /BEGIN/{close(cmd)};{print | cmd}' < /etc/ssl/certs/ca-certificates.crt

Para obtener el "asunto" de cada certificado de CA en /etc/ssl/certs/ca-certificates.crt

Tenga en cuenta que a veces, obtiene ese error cuando los servidores SSL olvidan proporcionar los certificados intermedios.

Use openssl s_client -showcerts -connect the-git-server:443para obtener la lista de certificados que se envían.


2
//, Esto no funciona en CEntOS 6, pero he agregado una respuesta para CEntOS 6 aquí: unix.stackexchange.com/a/363309/48498
Nathan Basanese

1
La lista de trust listde paquete de p11-kit es esencialmente el mismo?
Pablo A

15

No estoy seguro acerca de Gentoo, pero la mayoría de las distribuciones colocan sus certificados soft-link en la ubicación de todo el sistema en /etc/ssl/certs.

  • Los archivos clave van a /etc/ssl/private
  • Los archivos reales proporcionados por el sistema se encuentran en /usr/share/ca-certificates
  • Los certificados personalizados entran /usr/local/share/ca-certificates

Siempre que coloque un certificado en una de las rutas mencionadas anteriormente, ejecute update-ca-certificatespara actualizar las /etc/ssl/certslistas.


1
/etc/ssl/certses la carpeta correcta en gentoo. Pero los archivos no son buenos para leer para los ojos humanos.
Jonas Stein

3
Está update-ca-certificatescon un adicional s(no puedo editar esto yo mismo, ya que es solo una edición de un carácter).
Slaven Rezic

@SlavenRezic: alguien lo arregló.
Craig S. Anderson el

3

Tenía el requisito de enumerar todos los certificados en nuestro servidor y notificar si vencen. Se nos ocurrió este comando:

locate .pem | grep "\.pem$" | xargs -I{} openssl x509 -issuer -enddate -noout -in {}
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.