我有一个小的应用程序写在cherrypy之上。我想在默认的cherrypy服务器下运行它。我有我的域名+我的由Comodo验证的ssl证书。在过去的24小时里,我一直试图让它在一个简单的应用程序下运行,但没有任何运气。我已经编写了一个测试应用程序,如下所示:
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())它会在没有任何问题的情况下启动。然而,当我尝试访问它时,我得到了以下信息:
alex@asus:~> 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我能做错什么呢?
发布于 2016-01-18 07:53:29
我花了一段时间才弄明白,但我让它运行起来了。在这里留下评论,以防有人撞到同样的石头:
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())https://stackoverflow.com/questions/34838140
复制相似问题