CherryPy后面的Apache SSL

问题描述:

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

我发现了有关在CherryPy上使用SSL并配置Apache2为CherryPy执行SSL工作的多个教程,但是我一直无法找到一个教程,讨论在Apache2后面使用SSL与CherryPy,而无需配置Apache2来执行SSL工作。

+0

您是否需要/希望在Apache Httpd后面运行CherryPy? – Bruno

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

但是,HTTP不具有starttls功能;所以使用隧道来代替。在任何http流量传输之前,双方都会启动安全隧道;客户端验证服务器证书的正确性,服务器可以为客户端执行相同的操作(如果需要/请求)。只有这一切发生,客户端才发送页面请求。

是阿帕奇(或任何其他代理)要做到这一点,这意味着它必须通过所有加密流量到源服务器(在你的问题的CherryPy),因为通信进行加密,代理没有机会“在此发送此请求,但在那里请求”。如果它只是通过所有未经修改的流量,那么它根本没有任何帮助;你也可以直接暴露原始服务器。

+0

我不认为我见过称为“隧道”的模式(尽管这确实适用于隧道)。有些人称之为“隐含的”,而不是“明确的”,你需要就协议级别的升级达成一致。 – Bruno

你不能这样做(我也不会尝试)。首先,Apache比CherryPy更好地终止SSL(如果没有其他原因,比性能)。其次,它将无法正常工作,因为Apache会说HTTP并且HTTPS实际上是使用SSL进行HTTP加密的,所以您需要在获得Apache可以理解的任何HTTP之前处理SSL。