¿Hay alguna manera de configurar un contexto de OpenSSL (SSL_CTX
) con un conjunto razonable de certificados de CA confiables sin distribuyéndolos yo mismo? No quiero la responsabilidad de mantenerlos actualizados. OMI cualquier sistema operativo moderno debería proporcionar "obtener los certificados de CA de confianza" como un servicio, pero no sé si ese es realmente el caso.Valor predeterminado razonable de OpenSSL para certificados de CA confiables?
No me importa escribir este código tres veces (una para Windows, una para Mac OS X y una para Linux), pero prefiero limitarla a eso. En particular, prefiero no intentar escribir un código que husmee en buscar qué navegadores están instalados e intentar extraer sus certificados confiables. (Aparentemente es easy to get this very wrong.)
La respuesta para las versiones recientes de Linux parece ser llamar al SSL_CTX_load_verify_locations
con /etc/ssl/certs/ca-certificates.crt
(si ese archivo existe).
¿Hay respuestas simples para Windows y Mac OS X?
¿Sabe cómo 'certtool' se comporta para los certificados que se marcan explícitamente como" nunca confían "? – Bruno
No creo que certtool muestre nada sobre los niveles de confianza; querrías consultar la confiabilidad usando un mecanismo diferente. Pruebe 'man security' de una buena manera, si realmente está usando las herramientas de línea de comandos para esto. –
Vea también la utilidad certsync de MacPorts (https://trac.macports.org/browser/trunk/dports/security/certsync/#files, el código real está en 'files/certsync.m'), que también exporta los archivos de confianza arraiga en un archivo y presta atención a los indicadores de confianza (al no exportarlos). – neverpanic