2013-10-31 9 views
9

しかしWebServerのへの接続を確保するための簡単な方法があり、私は証明書を生成する必要がありますか?どうすればいい?Pythonの3 HTTPS Webサーバー

+0

「Google」を最初に試してみるといいでしょう。 http://www.piware.de/2011/01/creating-an-https-server-in-python/およびhttp://code.activestate.com/recipes/442473-simple-http-server-supporting-を参照してください。 ssl-secure-communica/ – starrify

+0

:「本当の」Webサーバーでこれを処理し、アプリケーションコードを実行するためにPythonを使用するだけではるかに一般的です。 – millimoose

答えて

14

まず、あなたは証明書が必要になります - そして、私たちは両方秘密鍵と公開鍵を含むファイルlocalhost.pemでそれを持っていると仮定します。

import http.server, ssl 

server_address = ('localhost', 4443) 
httpd = http.server.HTTPServer(server_address, http.server.SimpleHTTPRequestHandler) 
httpd.socket = ssl.wrap_socket(httpd.socket, 
           server_side=True, 
           certfile='localhost.pem', 
           ssl_version=ssl.PROTOCOL_TLSv1) 
httpd.serve_forever() 

あなたはwrap_socketのための右のパラメータを指定してください!

+0

'keyfile = '...''も指定する必要がありました。また、例えば、 curlで質問すると、 'curl:(56)GnuTLS recv error(-110):TLS接続が正しく終了していませんでした'(無視しても構いませんが、何かが醜いと思われます) – Blauhirn

+1

'keyfile '私が述べたように、証明書に秘密鍵が含まれていない場合、ドキュメントは[ここ]です(https://docs.python.org/3/library/ssl.html#combined-key-and-certificate)。 –

関連する問題