75

Python 3 で簡単な HTTP Web サーバーを作成できることを知っています。

python -m http.server

ただし、WebServer への接続を保護する簡単な方法はありますか?証明書を生成する必要がありますか? どうすればいいですか?

4

1 に答える 1

83

まず、証明書が必要です。秘密鍵と公開鍵の両方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_TLS)
httpd.serve_forever()

wrap_socket!に正しいパラメータを指定していることを確認してください。

注:これを使用して Web トラフィックを処理する場合は'0.0.0.0'、代わりに を使用し'localhost'てすべてのインターフェイスにバインドし、ポートを 443 (HTTPS の標準ポート) に変更し、許可を得るためにスーパーユーザー権限で実行する必要があります。既知のポートにバインドします。

于 2013-10-31T12:33:33.337 に答える