2017-10-02 15 views
0

は、だから私は、インターネットからのこのHTTPSサーバを持って、私は証明書と、このコマンドを使用して、キーファイル作成:HTTPSサーバは永遠に起動

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

をそして、これは私のコード(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() 

しかし、このコードを実行するたびに、「サーバーの起動...」で停止します。
私は間違っていますか?

+0

あなたのキーファイルにパスワードがありますか? – allo

+0

はい、証明書を作成するときに追加しました。それでも問題が何であるか分かりません。 – alex

+0

私は今ここでテストすることはできませんが、サーバーはあなたにパスフレーズを尋ねましたか?それ以外の方法で実行します: '' -nodes''パラメータで証明書/キーを作成し、動作するかどうかテストします。 – allo

答えて

0

あなたの鍵はパスフレーズで生成されており、サーバーは正しいパスフレーズを使用せずに鍵を読み取ることができません。 sslモジュールを使用するか、パスフレーズで鍵をロック解除するか、またはパスフレーズなしで鍵を使用する必要があります(-nodesパラメータで生成)。

関連する問題