如何使Apache将HTTP请求代理到HTTPS

3
我正在尝试按照这里所描述的方式配置svn镜像和透明代理,但在https方面遇到了困难。
当前设置如下:
  • 主服务器公开可用,并受https保护。
  • 从服务器位于nginx反向代理后面,并通过http提供服务,但nginx使用https保护所有外部流量。
我设法设置svnsync以在这种奇怪的设置上工作,但在writethruproxy方面遇到了困难:
mod_proxy_http不喜欢另一端的https并显示以下内容:
[debug] proxy_util.c(1525): [client ccc.ccc.ccc.ccc] proxy: *: found reverse proxy worker for https://xxx.xxx.xxx.xxx:yyyy/svn/my_repo/!svn/me
[debug] mod_proxy.c(1020): Running scheme https handler (attempt 0)
[debug] mod_proxy_http.c(1954): proxy: HTTPS: declining URL https://xxx.xxx.xxx.xxx:yyyy/svn/my_repo/!svn/me (mod_ssl not configured?)
[debug] mod_proxy_ajp.c(677): proxy: AJP: declining URL https://xxx.xxx.xxx.xxx:yyyy/svn/my_repo/!svn/me
[debug] mod_proxy_ftp.c(842): proxy: FTP: declining URL https://xxx.xxx.xxx.xxx:yyyy/svn/my_repo/!svn/me - not ftp:
[debug] mod_proxy_connect.c(100): proxy: CONNECT: declining URL https://xxx.xxx.xxx.xxx:yyyy/svn/my_repo/!svn/me
[warn] proxy: No protocol handler was valid for the URL /svn/brisbane/!svn/me. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.

简短概述:是否有办法配置mod_ssl和mod_proxy_http将http流量转发到https?

  • 谢谢您!

请详细说明TLDR评论。 - dldnh
关键是添加SSLProxyEngine on - user1308092
1个回答

3
您需要首先启用mod_ssl (例如,在Debian/Ubuntu上使用a2enmod ssl,或根据您的安装要求修改配置以加载模块)。

然后,您需要按照mod_proxy文档中指示的方式配置SSLProxy*指令,更具体地说,至少需要使用SSLProxyCACertificateFileSSLProxyCACertificatePath来确定您信任哪个CA(因为您的Apache Httpd服务器在这方面是客户端)。


2
谢谢,那帮了我很多!虽然添加证书不是必需的。我的做法只是启用 mod_ssl 并在 svn 部分之前添加 SSLProxyEngine on。 - user1308092
2
@user1308092,缺省的 SSLProxyVerify none 选项使得代理和实际服务器之间的连接容易受到中间人攻击,因为它不会验证任何内容。通常应将其设置为 required,并遵循 文档中红色框中的注释 - Bruno

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接