Расположение SSL-сертификата в UNIX / Linux

114

Существует ли какой-либо стандарт или соглашение о том, где сертификаты SSL и связанные с ними закрытые ключи должны находиться в файловой системе UNIX / Linux?

Благодарю.

Джон Топли
источник

Ответы:

90

Для общесистемного использования OpenSSL должен предоставить вам /etc/ssl/certsи /etc/ssl/private. Последний из которых будет ограничено 700до root:root.

Если у вас есть приложение, которое не выполняет первоначальный привсеп, от rootвас может потребоваться найти их где-то локально по отношению к приложению с соответствующим ограничением прав собственности и разрешений.

Дэн Карли
источник
4
это где-то стандартизировано? Стандарт иерархии файловой системы не содержит его.
cweiske
1
@cweiske Это, кажется, историческое соглашение OpenSSL, формально не стандартизированное и, на мой взгляд, очень громоздкое. Моя самая ранняя трассировка - эта версия: rpm.pbone.net/index.php3/stat/4/idpl/38501/dir/redhat_other/com/…
kubanczyk
6
Стоит отметить, что это только дистрибутивы на основе Debian.
Джошуа Гриффитс
2
Могу ли я хранить здесь сертификаты SSL (например, Let's Encrypt или Cloudflare) для веб-сайтов? Спасибо!
Владислав Турак
1
/etc/ssl/certsНасколько я вижу, Arch и CentOS также хранят сертификаты
theferrit32
50

Это где Go ищет корневые сертификаты открытых :

"/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

Также :

"/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
источник
14

Это будет варьироваться от распределения к распространению. Например, в экземплярах Amazon Linux (основанных на RHEL 5.x и частях RHEL6 и совместимых с CentOS) сертификаты хранятся в, /etc/pki/tls/certsа ключи - в /etc/pki/tls/private. Сертификаты CA имеют свой собственный каталог /etc/pki/CA/certsи /etc/pki/CA/private. Для любого данного дистрибутива, особенно на размещенных серверах, я рекомендую следовать уже имеющейся структуре каталогов (и разрешений), если таковая имеется.

vallismortis
источник
1
То же самое и для CentOS7, спасибо.
Джейкоб Эванс
1

Ubuntu использует /etc/ssl/certs. У этого также есть команда, update-ca-certificatesкоторая установит сертификаты от /usr/local/share/ca-certificates.

Поэтому рекомендуется устанавливать /usr/local/share/ca-certificatesи запускать собственные сертификаты update-ca-certificates.

http://manpages.ubuntu.com/manpages/latest/man8/update-ca-certificates.8.html

Иона Браун
источник
-1

Если вы ищете сертификат, используемый вашим экземпляром Tomcat

  1. Откройте файл server.xml
  2. Поиск соединителя SSL / TLS
  3. Смотрите keystoreFileатрибут, который содержит путь к файлу хранилища ключей.

Это выглядит как

<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
источник