Как установить ssl-соединение с сервером торнадо? - PullRequest
0 голосов
/ 04 июля 2019

Итак, у меня есть «клиент», который использует библиотеку запросов python для выполнения запросов http / https со следующим кодом:

proxies = {
            'http' : 'http://user:1@localhost:8888', 
            'https': 'http://user:1@localhost:8888'  
        }

r = requests.request('GET', 'https://www.instagram.com/', proxies = proxies)

Затем этот запрос перенаправляется на сервер торнадо.Вот как я инициализирую сервер торнадо после использования openssl для генерации сертификата:

def make_app():
    return tornado.web.Application(urls)

if __name__ == "__main__":
    app = make_app()
    http_server = tornado.httpserver.HTTPServer(app
        , ssl_options={"certfile": "ssl/cert.pem","keyfile": "ssl/key.pem"
    })
    http_server.listen(8888)
    tornado.ioloop.IOLoop.current().start()

Так вот, как работает мой вариант использования: я хочу, чтобы связь между моим клиентом и сервером торнадо была зашифрована,используя сертификат сервера.Затем на сервере торнадо я получаю необработанные данные (незашифрованные) и обрабатываю часть, в которую отправляю их, по запрошенному URL-адресу, в данном случае https://www.instagram.com/.Затем я собираю ответ и отправляю его клиенту в зашифрованном виде.Это возможный вариант использования?Нужен ли мне дополнительный код для обработки ssl-рукопожатия между клиентом и сервером торнадо? Кажется, клиент не может подключиться к серверу торнадо, когда я представил материал ssl_options.Без этого все работает нормально.Но я действительно хочу, чтобы эта логика использовалась.

...