【发布时间】:2014-08-02 06:25:58
【问题描述】:
我正在尝试制作一个 HTTPS 网络服务器。这是我的代码...
import tornado.escape
import tornado.ioloop
import tornado.web
import tornado.httpserver
import settings
import os
import ssl
class Application(tornado.web.Application):
def __init__(self):
handlers = [
(r'/login', LoginPage),
]
args = {
'template_path': settings.TEMPLATE_PATH,
'static_path': settings.STATIC_PATH,
'debug': True,
'cookie_secret': settings.COOKIE_SECRET,
'login_url': settings.LOGIN_URL,
}
tornado.web.Application.__init__(self, handlers, **args)
class LoginPage(tornado.web.RequestHandler):
def get(self):
self.write("SSL. Yay!")
if __name__ == '__main__':
applicaton = Application()
ssl_options = {'certfile': os.path.join(settings.SSL_PATH, 'certificate.crt'),
'keyfile': os.path.join(settings.SSL_PATH, 'privateKey.key'),
}
http_server = tornado.httpserver.HTTPServer(applicaton, ssl_options=ssl_options)
http_server.listen(8888)
tornado.ioloop.IOLoop.instance().start()
我使用以下命令生成了我的 certificate.crt 和 privateKey.key...
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout privateKey.key -out certificate.crt
当我运行服务器并转到 localhost:8888/login 时,我收到以下错误...
/usr/bin/python2 /home/user/dev/sslserver/main.py
WARNING:root:SSL Error on 9 ('127.0.0.1', 55303): [Errno 1] _ssl.c:509: error:1407609C:SSL routines:SSL23_GET_CLIENT_HELLO:http request
WARNING:root:SSL Error on 10 ('127.0.0.1', 55304): [Errno 1] _ssl.c:509: error:1407609C:SSL routines:SSL23_GET_CLIENT_HELLO:http request
WARNING:root:SSL Error on 9 ('127.0.0.1', 55305): [Errno 1] _ssl.c:509: error:1407609C:SSL routines:SSL23_GET_CLIENT_HELLO:http request
如果我删除 ssl_options=ssl_options 网页显示正常。我是否缺少 ssl_options 的参数?我是证书和 ssl 的新手,所以任何关于如何让这个工作的建议都将不胜感激。谢谢!
【问题讨论】:
标签: python ssl certificate tornado