¿Por qué faltan algunos certificados de búsqueda?

0

Parece que tengo un certificado en el llavero que a veces solo sale correctamente de security find-certificate en la línea de comando:

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 raíz del sistema no es útil:

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

Añadir una consulta de repente produce un resultado:

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

La misma consulta en "todos los llaveros" no tiene ningún resultado (esta vez es un error de openssl porque la entrada ahora está vacía):

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

¿Qué está pasando?

    
pregunta Sam Brightman 20.10.2016 - 18:40

1 respuesta

1

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

  1. Es necesario especificar SystemRootCertificates.keychain , de lo contrario se usa un llavero personal.
  2. openssl no analizará una secuencia de varias claves en una secuencia de texto.

Lo siguiente ejecuta openssl una vez por certificado y cumple con lo que estaba buscando:

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) \
       }'
    
respondido por el Sam Brightman 14.11.2016 - 18:14

Lea otras preguntas en las etiquetas