11

私は竜巻の初心者です。そして、次のような「Hello World」コードで学習を開始します。

import tornado.ioloop
import tornado.web
import tornado.httpserver

class HelloHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Hello, world!")

application = tornado.web.Application([
    (r"/", HelloHandler)
])

http_server = tornado.httpserver.HTTPServer(application)

if __name__ == "__main__":
    http_server.listen(80)
    # http_server.listen(443)
    tornado.ioloop.IOLoop.instance().start()

ブラウザで「http://localhost」と入力すると、動作して印刷されます

"Hello, world!"

しかし、リクエスト「https://localhost」を試してみると、次のように返されます。

Error 102 (net::ERR_CONNECTION_REFUSED): The server refused the connection.

Tornado オンラインに関するドキュメントが少なすぎます。Https プロトコル リクエストの処理方法を教えてくれる人はいますか?

4

1 に答える 1

17

tornado.httpserverドキュメントによると、ssl_optionsディクショナリ引数をそのコンストラクタに渡してから、HTTPS ポート (443) にバインドする必要があります。

http_server = tornado.httpserver.HTTPServer(applicaton, ssl_options={
    "certfile": os.path.join(data_dir, "mydomain.crt"),
    "keyfile": os.path.join(data_dir, "mydomain.key"),
})

http_server.listen(443)

mydomain.crtSSL証明書とmydomain.keySSL秘密鍵である必要があります。

于 2012-11-20T11:39:48.667 に答える