【问题标题】:SSL not working in CherryPySSL 在 CherryPy 中不起作用
【发布时间】:2015-01-17 02:09:13
【问题描述】:

我似乎按照文档做了所有事情,但 SSL 不起作用。
这是我的 CherryPy settings.conf:

[global]
request.show_tracebacks = False
server.socket_port = 443
server.thread_pool = 10
log.screen = True
log.error_file = '/root/website/Web.log'
log.access_file = '/root/website/Access.log'
cherrypy.server.ssl_module = 'pyopenssl'
cherrypy.server.ssl_certificate = "/etc/ssl/website/AddTrustExternalCARoot.crt"
cherrypy.server.ssl_private_key = "/etc/ssl/website/btcontract_com.key"
cherrypy.server.ssl_certificate_chain = "/etc/ssl/website/chain.crt"  

如果我尝试在浏览器中加载site.com:443,它可以在不使用证书的情况下工作。
如果我尝试https://site.com,浏览器会显示 SSL 连接错误。

CherryPy 错误和连接日志根本不包含任何内容,就好像它甚至没有收到这些 https 请求一样。我不确定我的 python 是否内置了 SSL 支持,所以我安装了pyOpenSSL。这是怎么回事,我该如何解决?

【问题讨论】:

  • btcontract.com:443 无疑是在做一个普通的 http 请求,因为你没有告诉浏览器使用 https。如果不通过在 url 上使用 https://... 协议前缀来强制协议,浏览器将使用纯 http - 仅仅因为您点击 443 不会神奇地将纯请求转换为 https。所以.. ssl 无法在您的服务器上运行。
  • @MarcB 好的,谢谢。遗憾的是,这并不能解决我的问题。
  • 我在 cherrypy 前面有 nginx,它处理 https 重定向。看看这个答案...stackoverflow.com/questions/7237830/…
  • @AndrewKloos 如果 CherryPy 可以自己处理 HTTPS,为什么还要使用 nginx?
  • nginx 做了一些请求限制,处理 ssl 并提供静态内容。我最大的原因是 nginx 可以很好地处理 DOS 攻击,而不会中断非违规客户端。

标签: ssl cherrypy


【解决方案1】:

通过在 CherryPy 上安装较低版本(即 3.2.3)解决了问题。显然 3.6.0 中的 SSL 有问题

【讨论】:

    【解决方案2】:

    版本 3.2.5 中的更改破坏了 SSL 支持。这尚未修复(从 3.6.0 版开始),但如果您需要使用其中一个版本,issue 1298 中建议了一个补丁。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-19
      • 2023-03-14
      • 1970-01-01
      • 2016-03-05
      • 2011-05-24
      • 1970-01-01
      相关资源
      最近更新 更多