Tornado SSL证书

2024-04-27 21:48:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个关于tornado SSL配置的问题。我想处理HTTPS协议。我也读过文档和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()

在我启动应用程序之后。我想从浏览器https://mydomain.com访问,但它不起作用,没有发生任何事情,它会给出失败请求错误。我该怎么办?顺便说一下http://mydomain.com:443正在工作。


Tags: path文档httpscomhttp协议sslsettings
1条回答
网友
1楼 · 发布于 2024-04-27 21:48:28

您将设置传递到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()

更新:

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

相关问题 更多 >