Python -m http.server 443 - с SSL? - PullRequest
       13

Python -m http.server 443 - с SSL?

0 голосов
/ 08 июня 2019

Можно ли создать временный HTTP-сервер Python3 с SSL-сертификатом? Например:

$ python3 -m http.server 443 --certificate /path/to/cert

Ответы [ 2 ]

1 голос
/ 08 июня 2019

Не из командной строки, но довольно просто написать простой скрипт для этого.

from http.server import HTTPServer, BaseHTTPRequestHandler 
import ssl
httpd = HTTPServer(('localhost', 4443), BaseHTTPRequestHandler)
httpd.socket = ssl.wrap_socket(
    httpd.socket,
    keyfile="path/to/key.pem",
    certfile='path/to/cert.pem',
    server_side=True)
httpd.serve_forever()

Кредит

Если вы не ограниченыстандартная библиотека и может устанавливать пакеты pip, есть также ряд других опций, например, вы можете установить uwsgi, который принимает опции командной строки.

1 голос
/ 08 июня 2019

На самом деле нет, но есть реализация, которая использует тот же пакет с ssl. Вы должны попробовать .

Сценарий написан с использованием Python 2, но его довольно легко реализовать с помощью Python 3, поскольку он состоит из 5 строк.

http.server - это Python 3, эквивалентный SimpleHTTPServer из Python 2.

import BaseHTTPServer, SimpleHTTPServer
import ssl

httpd = BaseHTTPServer.HTTPServer(('localhost', 4443), SimpleHTTPServer.SimpleHTTPRequestHandler)
httpd.socket = ssl.wrap_socket (httpd.socket, certfile='./server.pem', server_side=True)
httpd.serve_forever()

Скрипт кредитует дергачев

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...