2016-01-17 43 views
0

我有一个小的应用程序写在cherrypy顶部。我想在默认的cherrypy服务器下运行它。我有我的域名+我的ssl通过Comodo验证的证书。我一直试图在一个简单的应用程序下运行24小时,没有任何运气。我已经写了一个测试应用程序,如下所示:CherryPy ssl证书

import cherrypy 

class RootServer: 
    @cherrypy.expose 
    def index(self, **keywords): 
     return "SSL HERE WE COME!!!!" 


if __name__ == '__main__': 
    server_config={ 
     'server.socket_host': 'mydomain.com', 
     'server.socket_port':443, 

     'server.ssl_module':'pyopenssl', 
     'server.ssl_certificate':'/var/www/certs/mydomain_com.crt', 
     'server.ssl_private_key':'/var/www/certs/mydomain.com.key', 
     'server.ssl_certificate_chain':'/var/www/certs/bundle.pem' 
    } 

    cherrypy.config.update(server_config) 
    cherrypy.quickstart(RootServer()) 

它没有任何问题就启动了。但是,当我尝试访问它时,我得到以下内容:

[email protected]:~> openssl s_client -connect mydomain.com:443 -state -nbio 2>&1 | grep "^SSL" 
SSL_connect:before/connect initialization 
SSL_connect:SSLv2/v3 write client hello A 
SSL_connect:error in SSLv2/v3 read server hello A 
SSL3 alert read:fatal:handshake failure 
SSL_connect:error in SSLv2/v3 read server hello A 
SSL handshake has read 7 bytes and written 261 bytes 

我该做什么错?

回答

0

花了我一段时间弄清楚,但我得到它运行。如果有人碰到同一个摇滚乐,请留言:

import cherrypy 

class RootServer: 
    @cherrypy.expose 
    def index(self, **keywords): 
     return 'Success!' 

if __name__ == '__main__': 
    server_config={ 
     'server.socket_host': 'mydomain.com', 
     'server.socket_port':443, 

     'server.ssl_module':'pyopenssl', 
     'server.ssl_certificate':'/home/axe/CERTS/domain.crt', 
     'server.ssl_private_key':'/home/axe/CERTS/myserver.key', 
    } 

    cherrypy.config.update(server_config) 
    cherrypy.quickstart(RootServer())