如何使用HTTPS在CherryPy WSGI服务器(Cheroot)上运行Flask应用程序?

问题描述 投票:0回答:1

我现在在CherryPy Cheroot WSGI服务器上使用HTTP运行Python 2.7 Flask应用程序,如下所示。

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')

我可以将以上样本应用到我在Cheroot上的Flask应用程序吗?如果没有,那么对于Cheroot for HTTPS的Flask应用程序会是一个简单的例子吗?

python python-2.7 flask wsgi cherrypy
1个回答
2
投票

我想出了必要的修改。关于使用https的Cheroot上的Flask应用程序的信息不多,所以我想我会分享它。

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()
© www.soinside.com 2019 - 2024. All rights reserved.