Perché i certificati di ricerca mancano?

0

Mi sembra di avere un certificato nel portachiavi che a volte viene emesso correttamente da security find-certificate sulla riga di comando:

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

Il manuale afferma che questo "Esporta tutti i certificati da tutti i portachiavi". La specifica del portachiavi root di sistema non aiuta:

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

L'aggiunta di una query produce improvvisamente un risultato:

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

La stessa query su "tutti i portachiavi" non ha alcun risultato (questa volta un errore da openssl perché l'input è ora vuoto):

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

Cosa sta succedendo?

    
posta Sam Brightman 20.10.2016 - 18:40
fonte

1 risposta

1

Ciò è dovuto a una combinazione di due fattori:

  1. È necessario specificare il SystemRootCertificates.keychain , altrimenti verrà utilizzato un portachiavi personale.
  2. openssl non analizzerà un flusso di più chiavi in un flusso di testo.

Le seguenti esecuzioni openssl una volta per certificato e ottengono ciò che stavo cercando:

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) \
       }'
    
risposta data 14.11.2016 - 18:14
fonte

Leggi altre domande sui tag