Ubicación del certificado SSL en UNIX / Linux

114

¿Existe algún estándar o convención sobre dónde deben ir los certificados SSL y las claves privadas asociadas en el sistema de archivos UNIX / Linux?

Gracias.

John Topley
fuente

Respuestas:

90

Para todo el sistema, OpenSSL debería proporcionarle /etc/ssl/certsy /etc/ssl/private. El último de los cuales se limitará 700a root:root.

Si tiene una aplicación que no realiza un privsep inicial a partir de rootentonces, podría ser conveniente ubicarla en algún lugar local de la aplicación con la propiedad y los permisos restringidos de manera relevante.

Dan Carley
fuente
44
¿Está estandarizado en alguna parte? El estándar de jerarquía del sistema de archivos no lo contiene.
cweiske
1
@cweiske Esto parece ser una convención histórica de OpenSSL, no formalmente estandarizada, y muy difícil de manejar en mi opinión. Mi primer rastro es esta versión: rpm.pbone.net/index.php3/stat/4/idpl/38501/dir/redhat_other/com/…
kubanczyk
66
Vale la pena señalar que esto es solo distribuciones basadas en Debian.
Joshua Griffiths
2
¿Podría almacenar los certificados SSL (por ejemplo, Let's Encrypt o Cloudflare) para los sitios web aquí también? ¡Gracias!
Vladyslav Turak
1
Arch y CentOS también almacenan certificados CA en /etc/ssl/certslo que puedo ver
theferrit32
50

Aquí es donde Go busca certificados raíz públicos :

"/etc/ssl/certs/ca-certificates.crt",                // Debian/Ubuntu/Gentoo etc.
"/etc/pki/tls/certs/ca-bundle.crt",                  // Fedora/RHEL 6
"/etc/ssl/ca-bundle.pem",                            // OpenSUSE
"/etc/pki/tls/cacert.pem",                           // OpenELEC
"/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem", // CentOS/RHEL 7

También :

"/etc/ssl/certs",               // SLES10/SLES11, https://golang.org/issue/12139
"/system/etc/security/cacerts", // Android
"/usr/local/share/certs",       // FreeBSD
"/etc/pki/tls/certs",           // Fedora/RHEL
"/etc/openssl/certs",           // NetBSD
Timmmm
fuente
14

Esto variará de una distribución a otra. Por ejemplo, en las instancias de Amazon Linux (basadas en RHEL 5.xy partes de RHEL6, y compatibles con CentOS), los certificados se almacenan /etc/pki/tls/certsy las claves se almacenan /etc/pki/tls/private. Los certificados de CA tienen su propio directorio /etc/pki/CA/certsy /etc/pki/CA/private. Para cualquier distribución dada, especialmente en servidores alojados, recomiendo seguir la estructura de directorios (y permisos) ya disponible, si hay alguno disponible.

vallismortis
fuente
1
Lo mismo para CentOS7 también, gracias.
Jacob Evans el
-1

Si está buscando un certificado utilizado por su instancia de Tomcat

  1. Abra el archivo server.xml
  2. Buscar conector SSL / TLS
  3. Vea el keystoreFileatributo que contiene la ruta al archivo del almacén de claves.

Parece que

<Connector
    protocol="org.apache.coyote.http11.Http11Protocol"
    port="8443" maxThreads="200"
    scheme="https" secure="true" SSLEnabled="true"
    keystoreFile="${user.home}/.keystore" keystorePass="changeit"
    clientAuth="false" sslProtocol="TLS" />
naXa
fuente