Как запустить приложение Flask на CherryPy WSGI-сервере (Cheroot) с использованием HTTPS? - PullRequest
0 голосов
/ 27 марта 2019

Я запускаю приложение Python 2.7 Flask на CherryPy Cheroot WSGI-сервер, используя HTTP сейчас, как показано ниже.

from cheroot.wsgi import Server as WSGIServer
from cheroot.wsgi import PathInfoDispatcher as WSGIPathInfoDispatcher

from MyFlaskApp import app

d = WSGIPathInfoDispatcher({'/': app})
server = WSGIServer(('0.0.0.0', 80), d)

if __name__ == '__main__':
   try:
      server.start()
   except KeyboardInterrupt:
      server.stop()

Что мне нужно для перехода на HTTPS отсюда?Я нашел ниже инструкцию, но она не применима к моему приложению.

from cheroot.server import HTTPServer
from cheroot.ssl.builtin import BuiltinSSLAdapter

HTTPServer.ssl_adapter = BuiltinSSLAdapter(
        certificate='cert/domain.crt', 
        private_key='cert/domain.key')

Могу ли я применить приведенный выше пример к моему приложению Flask на Cheroot?Если нет, то каков простой пример приложения Flask на Cheroot для HTTPS?

1 Ответ

2 голосов
/ 27 марта 2019

Я разобрался в необходимой модификации.Не так много информации о приложении Flask на Cheroot с https, поэтому я решил поделиться им.

from cheroot.wsgi import Server as WSGIServer
from cheroot.wsgi import PathInfoDispatcher as WSGIPathInfoDispatcher
from cheroot.ssl.builtin import BuiltinSSLAdapter

from MyFlaskApp import app

my_app = WSGIPathInfoDispatcher({'/': app})
server = WSGIServer(('0.0.0.0', 443), my_app)

ssl_cert = "[path]/myapp.crt"
ssl_key = "[path]/myapp.key"
server.ssl_adapter =  BuiltinSSLAdapter(ssl_cert, ssl_key, None)

if __name__ == '__main__':
   try:
      server.start()
   except KeyboardInterrupt:
      server.stop()
...