Listen Sie alle verfügbaren SSL-Zertifikate auf

35

Mein Git-Kunde behauptet

error: Peer's Certificate issuer is not recognized.

Dies bedeutet, dass der entsprechende SSL-Serverschlüssel im globalen Systemschlüsselring nicht gefunden werden kann. Ich möchte dies überprüfen, indem ich mir die Liste aller systemweit verfügbaren SSL-Schlüssel auf einem Gentoo-Linux-System ansehe . Wie kann ich diese Liste bekommen?

Jonas Stein
quelle

Antworten:

65

Es sind nicht die von Ihnen gewünschten SSL-Schlüssel, sondern die Zertifizierungsstellen und genauer gesagt deren Zertifikate.

Du könntest es versuchen:

awk -v cmd='openssl x509 -noout -subject' '
    /BEGIN/{close(cmd)};{print | cmd}' < /etc/ssl/certs/ca-certificates.crt

So erhalten Sie den "Betreff" jedes CA-Zertifikats in /etc/ssl/certs/ca-certificates.crt

Beachten Sie, dass manchmal dieser Fehler auftritt, wenn SSL-Server vergessen, die Zwischenzertifikate bereitzustellen.

Verwenden Sie openssl s_client -showcerts -connect the-git-server:443diese Option , um die Liste der gesendeten Zertifikate abzurufen.

Stéphane Chazelas
quelle
2
//, Dies funktioniert unter CEntOS 6 nicht, aber ich habe hier eine Antwort für CEntOS 6 hinzugefügt: unix.stackexchange.com/a/363309/48498
Nathan Basanese
1
Die Liste von trust listvon p11-Kit - Paket ist im Wesentlichen das gleiche?
Pablo A
15

Ich bin mir nicht sicher über Gentoo, aber die meisten Distributionen legen ihre Zertifikate als Soft-Link an einem systemweiten Ort ab /etc/ssl/certs.

  • Schlüsseldateien gehen in /etc/ssl/private
  • Vom System bereitgestellte aktuelle Dateien befinden sich unter /usr/share/ca-certificates
  • Benutzerdefinierte Zertifikate gehen in /usr/local/share/ca-certificates

Wenn Sie ein Zertifikat in einen der oben genannten Pfade einfügen, führen Sie update-ca-certificatesdie Aktualisierung der /etc/ssl/certsListen aus.

SHW
quelle
1
/etc/ssl/certsist der richtige Ordner in Gentoo. Aber die Dateien sind für menschliche Augen nicht gut zu lesen.
Jonas Stein
3
Es ist update-ca-certificatesmit einem zusätzlichen s(kann nicht selbst bearbeitet werden, da es nur eine Ein-Zeichen-Bearbeitung ist).
Slaven Rezic
@SlavenRezic - Jemand hat es behoben.
Craig S. Anderson
3

Ich musste alle Zertifikate auf unserem Server auflisten und benachrichtigen, wenn sie ablaufen. Wir haben uns diesen Befehl ausgedacht:

locate .pem | grep "\.pem$" | xargs -I{} openssl x509 -issuer -enddate -noout -in {}
Dwight Emmons
quelle