2017-10-02 1 views
0

Also habe ich diesen https-Server aus dem Internet und ich erstellt das Zertifikat und die Schlüsseldatei mit diesem Befehl:Https-Server startet immer

openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 

Und dies ist mein Code (Python 3):

import ssl 
from http.server import BaseHTTPRequestHandler, HTTPServer 


class testHTTPServer_RequestHandler(BaseHTTPRequestHandler): 
    # GET 
    def do_GET(self): 
     # Send response status code 
     self.send_response(200) 

     # Send headers 
     self.send_header('Content-type', 'text/html') 
     self.end_headers() 

     # Send message back to client 
     message = "Hello world!" 
     # Write content as utf-8 data 
     self.wfile.write(bytes(message, "utf8")) 
     return 


def run(): 
    print('starting server...') 
    server_address = ('127.0.0.1', 1234) 
    httpd = HTTPServer(server_address, testHTTPServer_RequestHandler) 
    httpd.socket = ssl.wrap_socket(httpd.socket, certfile='cert.pem',keyfile='key.pem', server_side=True) 
    print('running server...') 
    httpd.serve_forever() 


run() 

Aber jedes Mal, wenn ich diesen Code ausführen, stoppt es bei 'Start Server ...'
Was mache ich falsch?

+0

Hat Ihr Keyfile ein Passwort? – allo

+0

Ja, beim Erstellen der Zertifikate habe ich eins hinzugefügt. Ich weiß immer noch nicht, was das Problem ist. – alex

+0

Ich kann hier jetzt nicht testen, aber hat der Server Sie nach der Passphrase gefragt? Anders herum: Erstellen Sie ein Zertifikat/Schlüssel mit dem Parameter '' -nodes'' und testen Sie, ob es funktioniert. – allo

Antwort

0

Ihr Schlüssel wurde mit einer Passphrase generiert und der Server kann sie nicht ohne die richtige Passphrase lesen. Sie müssen das ssl-Modul entweder so verwenden, dass Sie den Schlüssel mit der Passphrase entsperren, oder Sie verwenden einen Schlüssel ohne Passphrase, d. H. Generiert mit dem Parameter -nodes.