Frage So speichern Sie ein Remote-Server-SSL-Zertifikat lokal als Datei


Ich muss ein SSL-Zertifikat von einem Remote-Server herunterladen (nicht HTTPS, aber der SSL-Handshake sollte der gleiche sein wie Google Chrome / IE / wget und call all certificate check fail errors) und das Zertifikat als vertrauenswürdig in meine Laptops Windows 'hinzufügen Ich kann meine IT-Leute nicht dazu bringen, mir das CA-Zertifikat zu geben.

Dies ist für Bürokommunikation, so kann ich nicht wirklich den tatsächlichen Client verwenden, um das Zertifikat zu erhalten.

Wie mache ich das, ich habe Windows 7 und einen Stapel von Linuxes praktisch, so dass jede Werkzeug / Skriptsprache in Ordnung ist.


263
2018-01-18 07:43


Ursprung


Um das Zertifikat von a Mail-Server, sehen Sicherheit.stackexchange.com/questions/70528/... - That Brazilian Guy


Antworten:


Wenn Sie Zugriff auf OpenSSL haben, versuchen Sie es

openssl s_client -connect {HOSTNAME}:{PORT} -showcerts

Ersetze {HOSTNAME} und {PORT} mit was auch immer deine Werte sind.


251
2017-08-17 07:20



Ich bevorzuge diese Option, da ich keine GUI öffnen muss, und ich kann es über SSH von unseren Servern aus tun. - bramp
Außerdem funktioniert es für andere Protokolle als HTTP. - matt
elec3647's Lösung voll automatisiert das Extrahieren der PEM in einer Shell-Pipeline. - phs
443 ist der Standardport für HTTPS. - Flimm
ich brauchte -servername Option, um das virtuelle Host-Zertifikat zu erhalten. gist.github.com/Artistan/5219484efb2fe51cd064175b3d0d5971 - Artistan


Eine schnelle Methode zum Abrufen und Herunterladen des Zertifikats wäre, den folgenden Befehl auszuführen, der die Ausgabe der -showcerts an den x509 ssl-Befehl weiterleitet, der nur alles überflüssige deaktiviert. Beispielsweise:

openssl s_client -showcerts -connect server.edu:443 </dev/null 2>/dev/null|openssl x509 -outform PEM >mycertfile.pem

Um das Zertifikat mit wget zu verwenden,

wget https:/server.edu:443/somepage --ca-certificate=mycertfile.pem

183
2017-09-05 13:47



Ich habe das versucht (auf einer anderen Website) - aber wurde erwartet, dass die gesamte Kette der Zertifikate: scheint nur die erste in der Kette zurück gebracht - ist das zu erwarten? - monojohnny
Das funktioniert nicht für mich: Zertifikat 27262 konnte nicht geladen werden: Fehler: 0906D06C: PEM-Routinen: PEM_read_bio: keine Startzeile: /SourceCache/OpenSSL098/OpenSSL098-50/src/crypto/pem/pem_lib.c: 648: erwartet: VERTRAUEN ZERTIFIKAT - Janusz
Ich stimme monojohnny zu, das gibt dir die volle Kette nicht. - Michael Munsey
Spät, aber @monojohnny: openssl s_client -showcerts zeigt alle Zertifikate in der empfangenen Kette an (wenn die Verbindung erfolgreich ist), leitet aber durch openssl x509 nimmt nur den ersten und verwirft den Rest. Um alle von ihnen stattdessen zu verwenden ...| sed -n '/^-----BEGIN CERT/,/^-----END CERT/p' oder ...| awk '/^-----BEGIN CERT/,/^-----END CERT/' Sie können auch etwas komplizierter verwenden awk um jedes Zertifikat in eine separate Datei zu legen, die es einfacher macht, damit zu arbeiten openssl und einige andere Werkzeuge. - dave_thompson_085
Um das Zertifikat mit wget zu verwenden, wget https:/server.edu:443/somepage --ca-certificate=mycertfile.pem - MUY Belgium


Um ehrlich zu sein, habe ich das vorher noch nie probiert (nie nötig) aber ich habe es gerade in Firefox ausprobiert und es scheint zum Speichern zu funktionieren:

  1. Klicken Sie auf das SSL-Zertifikat-Symbol oben / Vorhängeschloss am unteren Rand.
  2. Klicken View Certificate
  3. Klicken Sie auf Details Tab
  4. Wählen Sie das gewünschte Zertifikat aus der Hierarchie [nicht im Bild eingekreist]
  5. Klicken Export

alt text


111
2018-01-18 07:56



Gut zu wissen - aber für meine Neugier, können Sie etwas mehr erklären, was Sie erreichen möchten? Ich musste noch nie ein SSL-Client-Zertifikat exportieren und bin sehr neugierig, warum Sie das wirklich tun müssten ... - William Hilsum
Das ist ein Server-Zertifikat, kein Client-Zertifikat. Der Hauptgrund, einen privaten Clientschlüssel und ein Zertifikat zu exportieren, besteht darin, ein Backup zu erstellen oder sich mit einem anderen Browser oder Computer zu authentifizieren. - gbroiles
@gbroiles - lies die Frage, er benutzte die falsche Terminologie, aber das löste sein Problem. - William Hilsum
richtig, und ich beantwortete Ihre Frage - warum möchte jemand ein Client-Zertifikat speichern? "SSL client certificate" war dein Begriff, nicht sein. - gbroiles
Sieht nicht so aus, als könnte man das in Chrome machen, richtig ?! - fatuhoku


Exportieren eines Zertifikats mit dem Chrome-Browser

  1. Verbinden Sie sich über SSL mit der Website (https: // was auch immer)

2. Klicken Sie auf das Schlosssymbol und dann auf Details

  1. Seit der Chrome-Version 56 führen Sie Folgendes aus: Gehen Sie zum Menü "Drei Punkte" -> Weitere Tools -> Entwicklertools und klicken Sie dann auf die Registerkarte "Sicherheit". Dies wird Ihnen einen geben Sicherheitsüberblick mit einem Zertifikat ansehen Taste.

  2. Klicken Sie auf Zertifikat ansehen Taste.

    Ein modales Fenster wird geöffnet. Es hat zwei Scheiben. Die oberste zeigt die Vertrauenshierarchie des Zertifikats der Site (das letzte aufgelistet), das Zwischenzertifikat (s) und das Wurzelzertifikat (das oberste).

    Der zweite, größere Bereich zeigt die Details eines der Zertifikate.

    Es kann null oder mehr Zwischenzertifikate geben.

    Beachten Sie, dass das Stammzertifikat ein goldumrandetes Symbol aufweist. Die anderen haben eine blaue Grenze.

    Sehen Sie den Screenshot unten.

  3. So exportieren Sie ein Zertifikat:

    1. Klicken Sie zuerst auf das Symbol des Zertifikats in der Vertrauenshierarchie.
    2. Das Zertifikat wird im Hauptteil des Modals angezeigt.
    3. Klicken Sie im Hauptbereich des Modals auf das große Symbol des Zertifikats. Ziehen das Symbol auf Ihrem Desktop. Chrome kopiert dann das Zertifikat auf Ihren Desktop.

enter image description here


40
2017-12-26 18:45



Ich musste das Icon auf einen Texteditor ziehen, der Desktop funktionierte nicht für mich. - Cory Klein
Wenn Sie unter Chrome auf "Zertifikat anzeigen" klicken, unterscheidet sich das Modal von Mac. Klicken Sie auf die Registerkarte Details und dann auf In Datei kopieren ... Wählen Sie dann das Format und den Dateinamen, was einfach ist. - PolyTekPatrick
Wenn ich Chrome v63 unter Mac OS verwende, ist die Textdatei, die ich durch das Ziehen des Zertifikats erhalte, lesbar, aber nicht in einem strukturierten Format, mit dem ich herausfinden kann, wie man in eine maschinenlesbare Form wie X.509 .crt konvertiert. - Jim DeLaHunt
kein Unterschied, wenn von der Adressleiste oder von diesem Dev-Tab geöffnet, und kann immer noch nicht herunterladen CRT ... - user25


Das ist Gbroiles 'Antwort, aber ich wollte darauf hinweisen, dass das cURL-Projekt hat eine Seite mit ein paar weiteren Details auf verwenden openssl So speichern Sie das SSL-Zertifikat des Remote-Servers:

  • openssl s_client -connect {HOSTNAME}: {PORT} | Abschlag logfile
  • Art QUIT und drücken Sie die Eingabetaste.
  • Das Zertifikat wird zwischen den Markierungen "BEGIN CERTIFICATE" und "END CERTIFICATE" aufgeführt.
  • Wenn Sie die Daten im Zertifikat anzeigen möchten, können Sie Folgendes verwenden:

    openssl x509 -inform PEM -in certfile -text -out certdata

    woher certfile ist das Zertifikat aus extrahiert logfile. Hinein sehen certdata.


16
2017-10-18 22:10





automatisiert

-servername wurde für mich benötigt, um das richtige Zertifikat vom virtuellen Host auf unserem Server zu erhalten.

openssl s_client -showcerts -connect host.name.com:443 -servername host.name.com </dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > host.name.com.pem

Sie können auch in ein Zertifikat für den Desktop konvertieren

openssl x509 -inform PEM -in host.name.com.pem -outform DER -out host.name.com.cer

Der letzte Teil besteht darin, es zu Ihren Zertifikaten hinzuzufügen, nicht sicher über Windows
für Mac Keychain habe ich verwendet, sollte ähnlich sein ...

sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain host.name.com.cer


4
2018-01-25 15:59



gist.github.com/Artistan/5219484efb2fe51cd064175b3d0d5971 - Artistan


Dadurch werden nur die Ergebnisse angezeigt, die die Zertifikate enthalten

echo QUIT | \
openssl s_client -showcerts -connect hostname:port | \
awk '/-----BEGIN CERTIFICATE-----/ {p=1}; p; /-----END CERTIFICATE-----/ {p=0}' "

1
2018-05-23 01:20