Tornado SSL证书

Mun*_*nkh 2 python ssl openssl nginx tornado

我对龙卷风SSL配置有疑问.我想处理HTTPS协议.我还阅读了docs和stackoverflow相同的问题.我有SSL证书和密钥文件.代码看起来像

settings = dict(
    ...
    ssl_options = {
        "certfile": os.path.join("certs/myserver.crt"),
        "keyfile": os.path.join("certs/myserver.key"),
    },
    ...
)
def main():
    http_server = tornado.httpserver.HTTPServer(tornado.web.Application(handlers,
                  **settings))

    http_server.listen(443)
    tornado.ioloop.IOLoop.instance().start()
Run Code Online (Sandbox Code Playgroud)

我开始我的应用程序后.我想从浏览器https://mydomain.com访问,但它不工作,没有任何反应,它给出了不成功的请求错误.我该怎么办?BTW http://mydomain.com:443正在运作.

Pra*_*een 8

您将设置传递给tornado.web.Application()而不是tornado.httpserver.HTTPServer

试试这个,

settings = dict(
    ...
    ssl_options = {
        "certfile": os.path.join("certs/myserver.crt"),
        "keyfile": os.path.join("certs/myserver.key"),
    },
    ...
)
def main():
    http_server = tornado.httpserver.HTTPServer(tornado.web.Application(handlers), 
                  ssl_options = {
    "certfile": os.path.join("certs/myserver.crt"),
    "keyfile": os.path.join("certs/myserver.key"),
})

    http_server.listen(443)
    tornado.ioloop.IOLoop.instance().start()
Run Code Online (Sandbox Code Playgroud)

更新:

settings = dict(
    ...
    ssl_options = {
        "certfile": os.path.join("certs/myserver.crt"),
        "keyfile": os.path.join("certs/myserver.key"),
    },
    ...
)
def main():
    http_server = tornado.httpserver.HTTPServer(tornado.web.Application(handlers), **settings)

    http_server.listen(443)
    tornado.ioloop.IOLoop.instance().start()
Run Code Online (Sandbox Code Playgroud)