我使用Apache作为几个不同项目的反向代理。 PCI-DSS合规性扫描显示我的Apache正在启用HTTP CONNECT方法。
正如Acunetix的网站所述 – http://www.acunetix.com/vulnerabilities/apache-proxy-http-connect-metho/
据我所知,Web服务器使用CONNECT将SSL隧道传输到应用程序服务器。
任何build议我应该如何解决这个问题?
否则,任何人都知道如果我的Apache的HTTP CONNECT方法启用/禁用,我应该如何执行testing?
我没有太多的networking经验,也没有configurationApache。 纠正我,如果我写了一些愚蠢的东西。
只有在使用转发代理configuration时才允许使用CONNECT方法,而在反向代理configuration中,甚至不需要启用connect方法。
如果你愿意,Apache应该configuration成“中间人”。 或者称为SSL终止点的SSL卸载程序,因为该configuration不是恶意的。
通常,apache是使用公共ssl证书configuration的,而apache转发到您的应用程序服务器的请求是通过普通的HTTP进行的。 如果您认为自己的LAN有敌意,您也可以通过HTTPS转发,但是apache将build立第二个HTTPS连接。
<VirtualHost 1.2.3.4:443> ServerName www.example.com SSLEngine on SSLCertificateFile /some/path/to/public.cert SSLCertificateKeyFile /some/path/to/key ProxyPass /app http://appserver.int.example.com/app ProxyPassReverse /app http://appserver.int.example.com/app </VirtualHost>
或者:
ProxyPass /app https://appserver.int.example.com/app ProxyPassReverse /app https://appserver.int.example.com/app
网站build议您限制谁可以做CONNECT 。 基本上你可以在你的主机的<Proxy>configuration中阅读。
像这样的东西可能会工作,并从上面的链接被盗取:
<Proxy *> Order Deny,Allow Deny from all Allow from yournetwork.example.com </Proxy>
这将只允许从yournetwork.example.com访问。 您可以input和IP范围以及主机。 另外控制访问您的代理可能是一个很好的阅读。
如果您已经加载了mod_proxy_connect ,则可以假定启用了CONNECT 。 如果您只想使用反向代理,则可以一起卸载此模块。
希望这会让你前进。