【问题标题】:CherryPy SSL Chained CertificatesCherryPy SSL 链式证书
【发布时间】:2015-06-23 03:45:12
【问题描述】:

我正在尝试让 CherryPy 使用 SSL。

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

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

openssl req -new -newkey rsa:2048 -nodes -out  [private info]

然后他们返回了两个文件,一个 .crt 和一个 gd_bundle.crt。第一个包含: 一个 -----BEGIN CERTIFICATE----- 证书 -----END CERTIFICATE-----

第二个包含 3,如上。

CherryPy 是否可以使用链式证书?我已经看到这个link 声明它需要修补并按照建议进行了尝试,但是修补失败并且该方法不起作用。

请有人解释我缺少什么或如何解决这个问题。

【问题讨论】:

    标签: python ssl cherrypy


    【解决方案1】:

    CherryPy 至少从 2011 年开始支持中间证书(不确定版本)。它也有文档记录,如果您准确阅读 Deploy SSL support 文档部分,您会注意到以下内容。

    如果你手头有一个证书链,你也可以指定它: cherrypy.server.ssl_certificate_chain = "certchain.perm"

    您可能知道最新版本的 CherryPy 3.6 存在 SSL 套接字问题,但它已在开发分支中修复,您可以从 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)
    

    相关安全警告

    请务必阅读此question。出于安全原因,我强烈建议您使用 Python 2.7.9+ 或 Python 3.4+,或者使用 pyOpenSSL 和最新的 OpenSSL。也不要忘记使用全面的 SSL 测试器来测试您的部署,例如Qualys's

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-31
      • 1970-01-01
      • 2018-08-13
      • 1970-01-01
      • 2011-04-29
      • 1970-01-01
      相关资源
      最近更新 更多