配置反向 SSL 到 SSL 代理(最好使用 Squid 或 Apache)

配置反向 SSL 到 SSL 代理(最好使用 Squid 或 Apache)

在过去的几个小时里,我一直在尝试为现在需要公开访问的应用程序启动并运行反向代理。

由于安全性和提供商阻止端口 80 的问题,应用程序只能通过 https 访问。我知道可以使用 apache 或 squid(以及其他方式)来实现。我尝试过这两种方式,但都失败了。

当前网络设置如下:

gateway.mydomain.com 是网关。在网关上,apache 已配置了默认 ssl vhost,并且 squid 作为常规正向代理运行。

本地网络上的应用程序,https://application.mydomain.com已设置并可按预期在本地进行访问。

这是我在 squid 上尝试的配置,在 squid 配置的顶部我添加了一个包含指令/etc/squid/application.conf

应用程序.conf:

https_port 443 cert=/etc/pki/tls/certs/localhost.crt key=/etc/pki/tls/private/localhost.key defaultsite=application.mydomain.com vhost

# HTTPS peer
cache_peer https://application.mydomain.com parent 443 0 no-query originserver ssl    sslflags=DONT_VERIFY_PEER name=application
cache_mgr root
visible_hostname application.mydomain.com
http_port 443 accel defaultsite=application.mydomain.com
acl all src 0.0.0.0/0.0.0.0

这种方法失败并出现以下错误:

SSL connection error Unable to make a secure connection to the server. This may be a problem with the server, or it may be requiring a client authentication certificate that you don't have. Error 107 (net::ERR_SSL_PROTOCOL_ERROR): SSL protocol error.

然后我尝试使用 apache,因为我希望网关在标准 https 端口 443 上监听。当 apache 在 443 上监听时,squid 配置将不起作用,因为将使用默认的 apache vhost。

这是我使用 apache 尝试的:

ssl.conf,在默认 vhost 之后

NameVirtualHost application.mydomain.com:443
<VirtualHost application.mydomain.com:443>
         ServerName application.mydomain.com
         LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined
         CustomLog /var/log/httpd/application_log combined
         LogLevel Debug

        SSLProxyEngine On
        SSLCertificateFile /etc/pki/tls/certs/localhost.crt
        SSLCertificateKeyFile /etc/pki/tls/private/localhost.key

        SSLProtocol all -SSLv2
        SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW

      # RewriteEngine on
      # RewriteRule ^/$ /index.html [R]

       ProxyRequests off

       ProxyPass / https://application.mydomain.com
       ProxyPassReverse / https://application.mydomain.com
</VirtualHost>

这是我喜欢的方式,所有应用程序都将在端口 443 上运行,但使用此设置,无论我尝试什么,默认 vhost 始终是被服务的那个。

如果有人对 squid 或 apache 有了解的话,我将不胜感激。

相关内容