Apache 代理到 FTPS

Apache 代理到 FTPS

我有一台 CentOS 6.4 服务器,装有 Apache 2.2.15。

我想为 ftps 服务器设置代理。以下是我的配置:

<VirtualHost *:8001>
DocumentRoot /var/www/html/root

RewriteEngine On

SSLProxyEngine on
SSLProxyMachineCertificateFile "ssl/cert.pem"
ProxyRequests Off

<Proxy *>
Order deny,allow
Allow from all
</Proxy>

ProxyPass / ftp://IP:990/
ProxyPassReverse / ftp://IP:990/

ErrorLog  logs/proxy.error.log
CustomLog logs/proxy.access.log common

</VirtualHost>

当我尝试执行代理 URL 时:

curl -ik http://localhost:8001/

我在日志中收到以下响应:

 [Tue Dec 10 13:17:22 2013] [error] [client IP] proxy: SSL/TLS required on the control channel returned by /

有人知道如何解决吗?

提前致谢。

答案1

在您的设置中,您从 Web 服务器到 FTP 服务器设置的 FTP 连接是普通 FTP(ftp://),而不是 FTP over SSL(FTPS) ProxyPass / ftp://IP:990/

您的错误消息可能表明 IP:990 中的 FTPS 服务器拒绝了未加密的连接。

据我所知,Apache mod_proxy_ftp 模块不支持 FTPS。

答案2

启动此 Web 服务器时您没有收到警告吗?因为我认为您不能将 vhost 定义与通配符结合使用,这是由于 SSL 的性质所致。

每个 SSL (v)host 只能使用 1 个特定 IP。在 vhost 配置中定义此 IP 时,您需要使用唯一的 IP。

这意味着:

Listen 192.168.0.1:8001
NameVirtualHost 192.168.0.1:8001

<VirtualHost 192.168.0.1:8001>
...
</VirtualHost>

相关内容