Speicherort des SSL-Zertifikats unter UNIX / Linux

114

Gibt es einen Standard oder eine Konvention dafür, wo SSL-Zertifikate und zugehörige private Schlüssel im UNIX / Linux-Dateisystem gespeichert werden sollen?

Vielen Dank.

John Topley
quelle

Antworten:

90

Für den systemweiten Einsatz sollte OpenSSL Ihnen /etc/ssl/certsund zur Verfügung stellen /etc/ssl/private. Letzteres wird beschränkt 700auf root:root.

Wenn Sie eine Anwendung haben, die ab diesem rootZeitpunkt kein erstes Privileg ausführt, ist es möglicherweise angebracht, sie an einem für die Anwendung lokalen Ort mit den entsprechend eingeschränkten Eigentumsrechten und Berechtigungen zu lokalisieren.

Dan Carley
quelle
4
Ist das irgendwo standardisiert? Der Dateisystem-Hierarchiestandard enthält es nicht.
Cweiske
1
@cweiske Dies scheint eine historische OpenSSL-Konvention zu sein, die formal nicht standardisiert und meiner Meinung nach sehr unhandlich ist. Meine früheste Spur ist diese Version: rpm.pbone.net/index.php3/stat/4/idpl/38501/dir/redhat_other/com/…
kubanczyk
6
Erwähnenswert ist, dass dies nur Debian-basierte Distributionen sind.
Joshua Griffiths
2
Kann ich auch hier die SSL-Zertifikate (zB Let's Encrypt oder Cloudflare) für die Websites speichern? Vielen Dank!
Vladyslav Turak
1
Arch und CentOS speichern auch Zertifikate, /etc/ssl/certssoweit ich sehen kann
theferrit32
50

Hier sucht Go nach öffentlichen Stammzertifikaten :

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

Auch :

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

Dies wird von Verteilung zu Verteilung variieren. Beispielsweise werden auf Amazon Linux-Instanzen (basierend auf RHEL 5.x und Teilen von RHEL6 und kompatibel mit CentOS) die Zertifikate in /etc/pki/tls/certsund die Schlüssel in gespeichert /etc/pki/tls/private. Die CA-Zertifikate haben ein eigenes Verzeichnis /etc/pki/CA/certsund /etc/pki/CA/private. Für jede Distribution, insbesondere auf gehosteten Servern, empfehle ich, die bereits verfügbare Verzeichnisstruktur (und die Berechtigungsstruktur) zu befolgen, sofern eine verfügbar ist.

vallismortis
quelle
1
Dasselbe gilt auch für CentOS7. Danke.
Jacob Evans
1

Ubuntu verwendet /etc/ssl/certs. Es hat auch den Befehl, update-ca-certificatesder Zertifikate von installiert /usr/local/share/ca-certificates.

Daher wird empfohlen , Ihre benutzerdefinierten Zertifikate zu installieren /usr/local/share/ca-certificatesund update-ca-certificatesauszuführen.

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

Jonah Braun
quelle
-1

Wenn Sie nach einem Zertifikat suchen, das von Ihrer Tomcat-Instanz verwendet wird

  1. Öffnen Sie die Datei server.xml
  2. Suchen Sie nach dem SSL / TLS-Connector
  3. Siehe keystoreFileAttribut, das den Pfad zur Keystore-Datei enthält.

Es sieht aus wie

<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
quelle