Ich muss ein SSL-Zertifikat eines Remoteservers herunterladen (nicht HTTPS, aber der SSL-Handshake sollte mit dem von Google Chrome / IE / wget identisch sein und alle Fehler bei der Zertifikatsprüfung verursachen) und das Zertifikat als vertrauenswürdig in meinen Laptops hinzufügen. Windows ' Zertifikatsspeicher, da ich meine IT-Mitarbeiter nicht dazu bringen kann, mir das CA-Zertifikat zu geben.
Dies ist für die Bürokommunikation, so dass ich den tatsächlichen Client nicht wirklich verwenden kann, um das Zertifikat zu erhalten.
Wie mache ich das? Ich habe Windows 7 und einen Stapel Linuxe zur Hand, so dass jede Tool- / Skriptsprache in Ordnung ist.
ssl
certificate
Kimvais
quelle
quelle
Antworten:
Wenn Sie Zugriff auf OpenSSL haben, versuchen Sie es
Ersetzen Sie {HOSTNAME} und {PORT} durch Ihre Werte.
quelle
-servername
Option, um das virtuelle Host-Zertifikat zu erhalten. gist.github.com/Artistan/5219484efb2fe51cd064175b3d0d5971Eine schnelle Methode, um das Zertifikat abzurufen und herunterzuladen, besteht darin, den folgenden Befehl auszuführen, der die Ausgabe von den -showcerts an den x509 ssl-Befehl weiterleitet, der nur alles überflüssige entfernt. Zum Beispiel:
So verwenden Sie das Zertifikat mit wget:
quelle
openssl s_client -showcerts
alle Zertifikate in der empfangenen Kette an (wenn die Verbindung erfolgreich ist), aber das Durchleitenopenssl x509
nimmt nur das erste und verwirft den Rest. Um sie alle zu erhalten, verwenden Sie stattdessen...| sed -n '/^-----BEGIN CERT/,/^-----END CERT/p'
oder....| awk '/^-----BEGIN CERT/,/^-----END CERT/'
Sie können auch ein etwas komplizierteres verwendenawk
, um jedes Zertifikat in einer separaten Datei abzulegen, wodurch die Verwendung mitopenssl
und einigen anderen Tools vereinfacht wird .index.html
=>HTTP request sent, awaiting response... 200 OK Length: unspecified [text/html] Saving to: ‘index.html.1’
Um ehrlich zu sein, ich habe dies noch nie versucht (musste es noch nie tun), aber ich habe es gerade in Firefox versucht und es scheint zum Speichern zu funktionieren:
View Certificate
Details
RegisterkarteExport
quelle
Exportieren eines Zertifikats mit dem Chrome-Browser
2. Klicken Sie auf das Schlosssymbol und dann auf DetailsSeit Chrome Version 56 gehen Sie wie folgt vor: Gehen Sie zum Menü Drei Punkte -> Weitere Tools -> Entwicklertools und klicken Sie auf die Registerkarte Sicherheit. Dadurch erhalten Sie eine Sicherheitsübersicht mit der Schaltfläche Zertifikat anzeigen.
Klicken Sie auf die Schaltfläche Zertifikat anzeigen.
Ein modales Fenster wird geöffnet. Es hat zwei Scheiben. Das oberste zeigt die Vertrauenshierarchie des Zertifikats der Site (das zuletzt aufgeführte Zertifikat), des Zwischenzertifikats und des Stammzertifikats (das oberste Zertifikat).
Der zweite, größere Bereich zeigt die Details eines der Zertifikate.
Es können null oder mehr Zwischenzertifikate vorhanden sein.
Beachten Sie, dass das Stammzertifikat ein goldgerahmtes Symbol aufweist. Die anderen haben einen blauen Rand.
Siehe den Screenshot unten.
So exportieren Sie ein Zertifikat:
quelle
Dies ist gbroiles' Antwort , aber ich wollte darauf hinweisen, dass die cURL Projekt eine Seite mit ein paar mehr Details hat über die Verwendung
openssl
des Remote - Servers SSL - Zertifikat zu speichern:QUIT
und drücken Sie die Enter / Return - Taste.Wenn Sie die Daten im Zertifikat anzeigen möchten, können Sie Folgendes verwenden:
wobei
certfile
das Zertifikat extrahiert auslogfile
. Schau reincertdata
.quelle
automatisiert
-servername war erforderlich, damit ich das richtige Zertifikat vom virtuellen Host auf unserem Server erhalten konnte.
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 ist, es zu Ihren Zertifikaten hinzuzufügen.
Ich bin mir nicht sicher, ob es unter Windows für Mac-Schlüsselbunde ähnlich sein sollte.
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain host.name.com.cer
quelle
login.keychain
über dieKeychain Access
App auf Ihren eigenen Benutzer kopieren Navigieren Sie einfach zu dem Zertifikat in System / SystemRoot und klicken Sie darauf und ziehen Sie es auf Ihrenlogin
Schlüsselbund.-d
Befehls meines Erachtens nur für den Benutzerschlüsselbund anstelle des Systemschlüsselbunds.trustAsRoot
statt ,trustRoot
damit es richtig hinzugefügt werden.Dies gibt die Ergebnisse, die nur die Zertifikate enthalten
quelle
Eine viel einfachere Möglichkeit gefunden, wenn unter Windows. Versuchte Microsoft Edge (Pre-Chrom) und klickte auf das Schloss in der Adressleiste -> Zertifikat anzeigen Dialog öffnet sich mit einer Schaltfläche "In Datei exportieren", die es als .crt-Datei speichert.
Nicht viel, wofür ich Edge verwenden würde, aber das war ein Kinderspiel.
quelle