Ich muss Server-Zertifikate als DER-Datei herunterladen. Ich benutze Python. Ich könnte mit diesem Skript eine Verbindung zum Server herstellen, aber ich muss das Zertifikat lokal auf meiner Festplatte herunterladen, damit ich es in der nächsten Phase parsen kann.Wie x509-Zertifikat mit Python herunterladen
import socket, ssl
import OpenSSL
hostname='www.google.com'
port=443
context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ssl_sock = context.wrap_socket(s, server_hostname=hostname)
ssl_sock.connect((hostname, port))
ssl_sock.close()
print("ssl connection Done")
cert = ssl.get_server_certificate((hostname, port))
# OpenSSL
x509 = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM, cert)
Können Sie ein wenig über 'open (‚/ tmp/google.der‘,‚wb klären ') als f: f.write (der) '? Ich bekomme Fehler: FileNotFoundError: [Errno 2] Keine solche Datei oder Verzeichnis: '/ tmp/google.der' ', obwohl ich tmp-Ordner im Projektordner erstellt. Ich habe auch 'open ('../ tmp/google.der', 'wb') versucht, aber das hat das Problem nicht gelöst. – user2192774
@ user2192774 Sie erhalten diesen Fehler wahrscheinlich, weil Ihr System kein '/ tmp'-Verzeichnis hat. In diesem Fall öffne stattdessen "google.der", "wb". –