2013-10-17 56 views
1

当我踢了我的龙卷风HTTPS服务器,我问了PEM密码(这是我没设置,所以我只需点击进入)龙卷风HTTPS的SSL错误

Enter PEM pass phrase: 2013-10-17 14:24:46,730 ioloop.py:660 Exception 
in I/O handler for fd 3 Traceback (most recent call last): File 
"/usr/lib/python2.7/site-packages/tornado/ioloop.py", line 653, in 
start 
    self._handlers[fd](fd, events) File "/usr/lib/python2.7/site-packages/tornado/stack_context.py", line 241, 
in wrapped 
    callback(*args, **kwargs) File "/usr/lib/python2.7/site-packages/tornado/netutil.py", line 141, in 
accept_handler 
    callback(connection, address) File "/usr/lib/python2.7/site-packages/tornado/tcpserver.py", line 212, in 
_handle_connection 
    do_handshake_on_connect=False) File "/usr/lib/python2.7/site-packages/tornado/netutil.py", line 322, in 
ssl_wrap_socket 
    return ssl.wrap_socket(socket, **dict(context, **kwargs)) File "/usr/lib64/python2.7/ssl.py", line 387, in wrap_socket 
    ciphers=ciphers) File "/usr/lib64/python2.7/ssl.py", line 141, in __init__ 
    ciphers) SSLError: [Errno 336265225] _ssl.c:351: error:140B0009:SSL routines:SSL_CTX_use_PrivateKey_file:PEM lib Enter 
PEM pass phrase: 

我生成的密钥使用这些指令:http://www.thegeekstuff.com/2009/07/linux-apache-mod-ssl-generate-key-csr-crt-file/ 然后修改龙卷风旋转起来,如下

SSL_OPTIONS = { 
    "certfile": "path/to/crt", 
    "keyfile": "path/to/private/key", } 
https_server = tornado.httpserver.HTTPServer(application, ssl_options=SSL_OPTIONS) 

我找不到任何解决这个问题。我正在使用最新的龙卷风版本和python 2.7

谢谢!

+0

是的,我看着http://stackoverflow.com/questions/8767757/python-ssl-socket-server?rq=1,但它并没有帮助:/ – Tobi

回答

2

如果你按照该页面上的说明操作,你的钥匙仍然有密码,它只是空的。我不确定是否可以在Python 2中非交互式地使用带密码的密钥(SSLContext.load_cert_chain的方法在Python 3.2中是新的)。您可以在第一步中将-des3更改为-nodes(然后重复其余步骤以获取新密钥),或使用openssl rsa从密码中删除密码,从而创建一个没有密码的密钥(这将禁用提示)关键你已经得到(见http://www.mnxsolutions.com/apache/removing-a-passphrase-from-an-ssl-key.html

+0

我的openssl genrsa没有-node标志,但是如果你根本没有提供-des3,它也可以工作(http://gagravarr.org/writing/openssl-certs/ca.shtml) - 谢谢! – Tobi