¿Dónde se almacenan las CA raíz en OS X?

Necesito uno de los certificados de CA raíz, como nombre de archivo, para pasar a un programa de línea de comandos. Podría descargarlo de DigiCert (y convertirlo al formato requerido, .crt) manualmente, pero creo que es más fácil usar la CA que OS X ya debe tener. Es un certificado común y todos mis servidores Linux ya lo tienen, por ejemplo.

En la aplicación "Acceso a llaveros", existe el certificado correcto, pero no puedo encontrar nada que diga dónde reside.

¿Existen estas CA en el sistema de archivos, o solo en un formato patentado opaco para las API de OS X?

Respuestas (2)

Las CA raíz se almacenan en:

/System/Library/Keychains/SystemCACertificates.keychain /System/Library/Keychains/SystemRootCertificates.keychain

Sí, estos son archivos de llavero OS X que son opacos, aunque no necesariamente propietarios. En teoría, podría usar las API de servicios de llavero de OS X para obtener los datos del certificado dentro del archivo de llavero, pero eso podría ser excesivo.

Si desea una copia tangible de cualquiera de los certificados raíz de CA, simplemente selecciónelo en Acceso a Llaveros y arrástrelos al Escritorio para hacer una copia en formato .cer.

(También puede usar Quick Look en Finder para obtener una vista previa de la información del certificado).

Puede usar la herramienta de seguridad en OSX para buscar certificados específicos en uno o más llaveros.

Desde Big Sur, las ubicaciones predeterminadas utilizadas para los llaveros del sistema son

  • /System/Library/Keychains/SystemRootCertificates.keychain
  • /Biblioteca/Llaveros/Sistema.llavero

y para su llavero de inicio de sesión personal

  • /Usuarios//Biblioteca/Llaveros/login.keychain-db

El programa de línea de comandos de seguridad (consulte man security) se puede utilizar para enumerar, exportar y buscar certificados almacenados en estos llaveros.

Exportación de todos los certificados raíz a un paquete codificado con PEM:

security export -t certs -f pemseq -k /System/Library/Keychains/SystemRootCertificates.keychain -o /tmp/all_certs.pem

Si desea un certificado específico donde conoce el nombre común en el llavero "KEYCHAIN", intente:

security find-certificate -p -c "COMMON NAME" "KEYCHAIN"

Si lo canaliza a través de openssl, puede verificar fácilmente que es el certificado correcto de la siguiente manera:

security find-certificate -p -c "COMMON NAME" "KEYCHAIN" | openssl x509 -text -noout

Por ejemplo; Para encontrar todos los certificados raíz con la cadena "Apple" en su nombre y mostrarlos en formato PEM, usaría

security find-certificate -p -c "Apple" /System/Library/Keychains/SystemRootCertificates.keychain

Hay muchas, muchas más opciones para que el programa de "seguridad" funcione con llaveros, por lo que debe leer la página de manual. Es un programa bastante útil que no parece ser muy conocido.