Lokalizacja certyfikatu SSL w systemie UNIX / Linux

114

Czy istnieje jakikolwiek standard lub konwencja dotycząca tego, gdzie certyfikaty SSL i powiązane klucze prywatne powinny iść w systemie plików UNIX / Linux?

Dzięki.

John Topley
źródło

Odpowiedzi:

90

Do użytku ogólnosystemowego OpenSSL powinien zapewnić /etc/ssl/certsi /etc/ssl/private. Ten ostatni będzie ograniczony 700do root:root.

Jeśli masz aplikację, która nie wykonuje początkowego przywileju root, może być wskazane zlokalizowanie jej gdzieś w pobliżu aplikacji z odpowiednio ograniczonym prawem własności i uprawnieniami.

Dan Carley
źródło
4
czy to gdzieś jest znormalizowane? Standard hierarchii systemu plików go nie zawiera.
cweiske,
1
@cweiske Wydaje się, że jest to historyczna konwencja OpenSSL, nie formalnie ujednolicona i moim zdaniem bardzo niewygodna. Mój najwcześniejszy ślad to ta wersja: rpm.pbone.net/index.php3/stat/4/idpl/38501/dir/redhat_other/com/…
kubańczyk
6
Warto zauważyć, że jest to tylko dystrybucja oparta na Debianie.
Joshua Griffiths,
2
Czy mogę tutaj przechowywać certyfikaty SSL (np. Let's Encrypt lub Cloudflare)? Dzięki!
Vladyslav Turak
1
Arch i CentOS przechowują również certyfikaty ca, /etc/ssl/certso ile widzę
theferrit32
50

Oto, gdzie Go szuka publicznych certyfikatów głównych :

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

Również :

"/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
źródło
14

Różni się to w zależności od dystrybucji. Na przykład w instancjach Amazon Linux (opartych na RHEL 5.xi częściach RHEL6 i kompatybilnych z CentOS) certyfikaty są przechowywane, /etc/pki/tls/certsa klucze są przechowywane /etc/pki/tls/private. Certyfikaty CA mają własny katalog /etc/pki/CA/certsoraz /etc/pki/CA/private. W przypadku dowolnej dystrybucji, szczególnie na serwerach hostowanych, zalecam przestrzeganie już dostępnej struktury katalogów (i uprawnień), jeśli taka jest dostępna.

vallismortis
źródło
1
To samo dotyczy CentOS7, dziękuję.
Jacob Evans
1

Używa Ubuntu /etc/ssl/certs. Posiada również polecenie, z update-ca-certificatesktórego zostaną zainstalowane certyfikaty /usr/local/share/ca-certificates.

Zaleca się więc instalowanie /usr/local/share/ca-certificatesi uruchamianie niestandardowych certyfikatów update-ca-certificates.

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

Jonah Braun
źródło
-1

Jeśli szukasz certyfikatu używanego przez instancję Tomcat

  1. Otwórz plik server.xml
  2. Wyszukaj złącze SSL / TLS
  3. Zobacz keystoreFileatrybut zawierający ścieżkę do pliku kluczy.

To wygląda jak

<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
źródło