1 votos

¿Por qué en find-certificates faltan algunos?

Parece que tengo un certificado en el llavero que sólo a veces sale correctamente de security find-certificate en la línea de comandos:

security find-certificate -a -p | openssl x509 -text | grep -i comodo

El manual afirma que esto "Exporta todos los certificados de todos los llaveros". Especificar el llavero root del sistema no ayuda:

security find-certificate -a -p /System/Library/Keychains/SystemRootCertificates.keychain | openssl x509 -text | grep -i comodo

La adición de una consulta produce repentinamente un resultado:

security find-certificate -a -p -c comodo /System/Library/Keychains/SystemRootCertificates.keychain | openssl x509 -text | grep -i comodo

La misma consulta sobre "todos los llaveros" no tiene resultado (esta vez un error de openssl porque la entrada está vacía):

security find-certificate -a -p -c comodo | openssl x509 -text | grep -i comodo

¿Qué está pasando?

2voto

Curt Hagenlocher Puntos 12432

Esto se debe a una combinación de dos factores:

  1. Especificando el SystemRootCertificates.keychain es necesario, de lo contrario se utiliza un llavero personal.
  2. openssl no analizará un flujo de claves múltiples en un flujo de texto.

Los siguientes recorridos openssl una vez por certificado y logra lo que buscaba:

security find-certificate -a -p /System/Library/Keychains/SystemRootCertificates.keychain \
| awk '/-----BEGIN CERTIFICATE-----/ { cert = "" } \
       { cert = cert $0 "\n" } \
       /-----END CERTIFICATE-----/ { \
           openssl = "openssl x509 -text"; \
           print cert | openssl; \
           close(openssl) \
       }'

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X