Настройка обратного 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 я добавил директиву include /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. Конфигурация Squid не работала, когда Apache прослушивал порт 443, использовался виртуальный хост Apache по умолчанию.

Вот что я попробовал с 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, но при такой настройке, что бы я ни пробовал, всегда обслуживается виртуальный хост по умолчанию.

Если у кого-то есть подсказка по поводу squid или apache, я буду очень признателен.

Связанный контент