0

有没有办法设置 CherryPy 在 Apache2 后面运行时使用 SSL 而无需配置 Apache2 为 CherryPy 执行 SSL?

我找到了多个关于将 SSL 与 CherryPy 一起使用以及配置 Apache2 为 CherryPy 执行 SSL 工作的教程,但我无法找到一个教程来处理在 Apache2 后面使用 SSL 和 CherryPy 而无需配置 Apache2 来执行 SSL 工作。

4

2 回答 2

3

解释一下 gcbrizan 的回答,你不能,因为理解 https 请求所需的第一步是首先解密连接。SSL/TLS 有两种工作模式;隧道和 STARTTLS;在后者中,开始一个正常的连接,并且在某个时候,一旦双方建立了他们想要对连接做的任何事情;一个对等方要求另一个对等方开始加密连接。ESMTP(电子邮件)使用这种机制。

然而,HTTP 没有 starttls 功能。所以改为使用隧道。在传输任何 http 流量之前,双方都会启动一个安全隧道;客户端验证服务器证书的正确性,服务器可以为客户端做同样的事情(如果需要/请求)。只有在所有这些都发生后,客户端才会发送页面请求。

是 apache(或任何其他代理)执行此操作,这意味着它必须将所有加密流量传递到源服务器(在您的问题中为cherrypy),因为流量已加密,代理没有机会“在此处发送此请求,但那里的请求”。如果它只是通过未经修改的所有流量,那么它根本没有做任何有用的事情;你也可以直接暴露源服务器。

于 2012-08-24T19:11:45.313 回答
2

你不能这样做(我也不会尝试)。首先,Apache 在终止 SSL 方面会比 CherryPy 更好(如果没有其他原因,那就是性能)。其次,它根本不起作用,因为 Apache 使用 HTTP,而 HTTPS 实际上是使用 SSL 加密的 HTTP,因此在获得任何 Apache 可以理解的 HTTP 之前,您需要处理 SSL。

于 2012-08-24T18:01:39.380 回答