Geben Sie die Passphrase im Falle von Python ssl Client / Server ein

Ich muss Client / Server-Anwendung erstellen, um Dateien von Clients an Server zu senden. Ich benutze einfach ssl Steckdosen dafür und authentifiziere mit Zertifikaten.

 ms = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ssl_sock = ssl.wrap_socket(ms, keyfile=".../newCA/my_client.key", certfile=".../newCA/my_client.crt", server_side=0, cert_reqs=ssl.CERT_REQUIRED, ca_certs=".../newCA/CA/my-ca.crt" ) ssl_sock.connect((HOST, MPORT)) 

Und Serverseite:

 msock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.ssl_sock = ssl.wrap_socket(msock, keyfile=".../newCA/my_server.key", certfile=".../newCA/my_server.crt", server_side=1, cert_reqs=ssl.CERT_REQUIRED, ca_certs=".../newCA/CA/my-ca.crt" ) self.ssl_sock.bind(('', self.PORT)) self.ssl_sock.listen(self.QUEUE_MAX) 

Das Problem ist das folgende: Wenn Client versucht, eine Verbindung zum Server herzustellen, muss er die Passphrase für den privaten Schlüssel für Beide eingeben: für Server- und Client-Seite.

  • In Java müssen wir System Property setzen: javax.net.ssl.keyStorePassword = "" und es muss automatisch verwendet werden, aber wie wird es in Python verwendet? Ich kann keine Passphrase eingeben, wenn der Client sich verbindet.

Das Problem ist, dass meine Anwendung: Client bereits signiertes Zertifikat verwenden sollte, und Server sollte auch bereits signiertes Zertifikat verwenden. Ich kann es nicht ändern. Sowohl Serever als auch Clients sind langlebige Anwendungen, so dass wir es einfach laufen lassen und wir müssen sie nicht suchen. Aber, wie ich verstehe, gibt Python keine gesetzliche Möglichkeit, automatisch Passphrase für privaten Schlüssel einzugeben. Kann andere Vorschläge sein?

2 Solutions collect form web for “Geben Sie die Passphrase im Falle von Python ssl Client / Server ein”

Eine Passphrase soll von einem Menschen als Identifikationsmerkmal eingegeben werden. Wenn du es hart kodieren willst, bietet ein SSL-Schlüssel ohne Passphrase das gleiche Maß an Sicherheit. Um die Passphrase loszuwerden, siehe auch: http://aleph-null.tv/article/20080714-1337-917.xml/Apache–LL—–R–Re-Red-Die-Passphrase&quot % 3B

Sie können sich auch in Python auf SSLSocket Passphrase / Passwort beziehen. Es ist gültig, um die Passphrase der privaten Schlüsseldatei für den serverseitigen Fall zu entfernen. OpenSSL bietet dazu das zu tun. Beispielsweise:

openssl pkey -in yourkey-with-pass.pem -out yourkey-without-pass.pem

Python ist die beste Programmiersprache der Welt.