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?

Jonas Stein
fuente

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.

Stéphane Chazelas
fuente
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.

SHW
fuente
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 {}
Dwight Emmons
fuente