Python 3 Простой HTTPS сервер

Я знаю, что вы можете создать простой веб-сервер HTTP в Python 3, используя

python -m http.server

Однако существует ли простой способ защиты соединения с WebServer, нужно ли создавать сертификаты? Как бы я это сделал?

Ответ 1

Сначала вам понадобится сертификат - предположим, что мы имеем его в файле 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!