Python CherryPy SSL链接证书

Python CherryPy SSL链接证书,python,ssl,cherrypy,Python,Ssl,Cherrypy,我正试图让CherryPy使用SSL 我遇到的第一个问题是Ubuntu上的当前版本不支持它,所以我升级到了最新版本,并使用自签名证书工作 然后我从GoDaddy那里得到了链接的证书。我向他们提供此命令的输出: openssl req -new -newkey rsa:2048 -nodes -out [private info] 然后他们返回了两个文件,一个.crt和一个gd_bundle.crt。第一部分包括: 一------开始证书------证书------结束证书----- 第二个包

我正试图让CherryPy使用SSL

我遇到的第一个问题是Ubuntu上的当前版本不支持它,所以我升级到了最新版本,并使用自签名证书工作

然后我从GoDaddy那里得到了链接的证书。我向他们提供此命令的输出:

openssl req -new -newkey rsa:2048 -nodes -out  [private info]
然后他们返回了两个文件,一个.crt和一个gd_bundle.crt。第一部分包括: 一------开始证书------证书------结束证书-----

第二个包含3个,如上所述

CherryPy与链式证书一起工作吗?我已经看到,这说明它需要修补,并按照建议进行了尝试,但修补失败,该方法不起作用


请有人解释一下我遗漏了什么或者如何解决这个问题。

CherryPy至少从2011年起就支持中介证书(不确定版本)。它也有文档记录,如果您仔细阅读文档部分,您会注意到以下几点

如果您手头有证书链,还可以指定它:
cherrypy.server.ssl\u certificate\u chain=“certchain.perm”

正如您所知,最新版本CherryPy 3.6存在SSL套接字问题,但该问题已在development branch中修复,您可以从repo安装它,如:

pip install hg+https://bitbucket.org/cherrypy/cherrypy
测试可能是这样的

#!/usr/bin/env python
# -*- coding: utf-8 -*-


import cherrypy


config = {
  'global' : {
    'server.socket_host' : '127.0.0.1',
    'server.socket_port' : 8080,
    'server.thread_pool' : 8,

    'server.ssl_module'            : 'pyopenssl',
    'server.ssl_certificate'       : '/path/to/certs/domain.com.crt',
    'server.ssl_certificate_chain' : '/path/to/certs/ssl123_ca_bundle.pem',
    'server.ssl_private_key'       : '/path/to/certs/domain.com.key',
  }
}


class App:

  @cherrypy.expose
  def index(self):
    return '<em>Is this secure?</em>'


if __name__ == '__main__':
  cherrypy.quickstart(App(), '/', config)
#/usr/bin/env python
#-*-编码:utf-8-*-
进口樱桃
配置={
“全球”:{
'server.socket_host':'127.0.0.1',
'server.socket_port':8080,
“服务器线程池”:8,
'server.ssl_module':'pyopenssl',
'server.ssl_certificate':'/path/to/certs/domain.com.crt',
'server.ssl_certificate_chain':'/path/to/certs/ssl123_ca_bundle.pem',
“server.ssl_private_key”:“/path/to/certs/domain.com.key”,
}
}
类应用程序:
@樱桃树
def索引(自):
return“这安全吗?”
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
cherrypy.quickstart(App(),“/”,config)
相关安全警告 一定要看这个。出于安全原因,我强烈建议您使用Python2.7.9+或Python3.4+,或者使用pyOpenSSL和最新的OpenSSL。例如,也不要忘记使用全面的SSL测试仪测试您的部署