Добавить перенаправление https в Python3 Mockserver

у нас есть этот фиктивный сервер, который теперь обслуживает запросы https://, и если мы удалим оболочку ssl (ssl.wrap_socket(myServer.socket,keyfile='key.pem',certfile= 'cert.pem', server_side=True) , сервер обслуживает только запросы http://. Есть ли способ заставить этот сервер поддерживать оба запроса. Наша цель состоит в том, что когда сервер получает запрос http://, он автоматически преобразует его в https:// и обработать запрос.

Заранее спасибо за поддержку

from http.server import HTTPServer, BaseHTTPRequestHandler
import ssl

class Mock(BaseHTTPRequestHandler):

    -------------------
    -------------------

def main():
    global hostname, port
    hostname = "127.0.0.1"
    port = 8000
    myServer = HTTPServer((hostname, port), Mock)
    myServer.socket = ssl.wrap_socket(myServer.socket,keyfile='key.pem',certfile= 'cert.pem', server_side=True)
    myServer.serve_forever()

if __name__ =="__main__":
   main()

person nhrcpt    schedule 05.03.2017    source источник


Ответы (1)


Если серверам HTTP и HTTPS нужна разная функциональность, то имеет смысл сделать их двумя разными экземплярами. Почему бы не создать второй HTTPServer, который будет только HTTP и просто возвращает статус 302 с заголовком Location, указывающим на фиктивный HTTPS-сервер (но с использованием того же пути).

person Alex Taylor    schedule 06.03.2017
comment
Спасибо .. Мы также думаем, что это может быть решением. Можете ли вы указать мне, как будет выглядеть кодирование для этого? - person nhrcpt; 07.03.2017