Ich habe ein End-Entity / Server-Zertifikat, das ein Zwischen- und Root-Zertifikat hat. Wenn ich cat
auf dem Endentitätszertifikat bin, sehe ich nur ein einzelnes BEGIN
und ein END
Tag. Es ist das einzige Endgerätezertifikat.
Kann ich den Inhalt des Zwischenzertifikats und des Stammzertifikats auf irgendeine Weise anzeigen? Ich brauche nur den Inhalt von BEGIN
und END
tag.
In Windows kann ich die vollständige Zertifizierungskette aus dem "Zertifizierungspfad" sehen. Unten sehen Sie das Beispiel für das Zertifikat von Stack Exchange.
Von dort aus kann ich ein Zertifikat anzeigen und exportieren. Ich kann das sowohl für root als auch für Intermediate unter Windows tun. Ich suche nach der gleichen Methode in Linux.
openssl
ssl
certificates
Anirban Nag 'tintinmj'
quelle
quelle
Antworten:
Auf einer Website können Sie Folgendes tun:
Daraufhin werden die Zertifikatskette und alle vom Server präsentierten Zertifikate angezeigt.
Wenn ich diese beiden Zertifikate in Dateien speichere, kann ich Folgendes verwenden
openssl verify
:Mit dieser
-untrusted
Option werden die Zwischenzertifikate ausgegeben.se.crt
ist das zu überprüfende Zertifikat. Das Ergebnis depth = 2 stammt aus dem vertrauenswürdigen CA-Speicher des Systems.Wenn Sie nicht über die Zwischenzertifikate verfügen, können Sie die Überprüfung nicht durchführen. So funktioniert X.509.
Abhängig vom Zertifikat kann es einen URI enthalten, von dem das Zwischenprodukt abgerufen werden kann. Als Beispiel
openssl x509 -in se.crt -noout -text
enthält:Dieser URI "CA Issuers" verweist auf das Zwischenzertifikat (im DER-Format, sodass Sie
openssl x509 -inform der -in DigiCertSHA2HighAssuranceServerCA.crt -out DigiCertSHA2HighAssuranceServerCA.pem
es zur weiteren Verwendung durch OpenSSL konvertieren müssen).Wenn Sie ausführen, erhalten
openssl x509 -in /tmp/DigiCertSHA2HighAssuranceServerCA.pem -noout -issuer_hash
Sie244b5494
, nach was Sie im Stammzertifizierungsstellenspeicher des Systems suchen können/etc/ssl/certs/244b5494.0
(fügen Sie einfach.0
den Namen hinzu).Ich glaube nicht, dass es einen netten, einfachen OpenSSL-Befehl gibt, der das alles für Sie erledigt.
quelle
BEGIN
undEND
tag (den Sie erhalten, nachdemcat
Sie die .crt-Datei heruntergeladen haben.openssl x509 -in file.crt -noout -text
BEGIN
und istEND
.openssl x509
Befehl nicht angezeigt wird, glaube ich nicht, dass das Zwischenzertifikat vorhanden ist. (Es sei denn, Sie haben einen Fehler vonopenssl x509
).tl; dr - Ein-Liner-Bash-Zauber, um alle Zertifikate in der Kette abzulegen
Erklärung in 2 Schritten
So legen Sie alle Zertifikate in der Kette in das aktuelle Verzeichnis ab
cert${chain_number}.pem
:Bonus-Track, um sie in ihren gemeinsamen Namen umzubenennen:
quelle