Прокси-сервер Apache / перенаправление https на https с одним IP-адресом

У меня есть один WAN-IP с веб-сервером apache, на котором размещен A.domain.com, и я переверну прокси с B.domain.com на другой сервер в та же локальная сеть.

Без SSL я решил это так в vhosts:

<VirtualHost *:80>
ServerName Z.domain.com
ProxyRequests Off

ProxyPass / http://1.1.1.7/
ProxyPassReverse / http://1.1.1.7/

но с включенным SSL это не работает таким образом ...

для лучшего понимания я попытался нарисовать это:

  - A.domain.com (локальный IP: 1.1.1.1)
 |
WAN --¦Firewall (NAT до 1.1.1.1) ¦-- LAN
 |
 - B.domain.com (локальный IP: 1.1.1.2)

Сервер 1.1.1.1 должен перенаправить на 1.1.1.2

мою конфигурацию /etc/apache2/sites-available/B.domain.com.conf:

<VirtualHost *:443>
        ServerName B.domain.com
        SSLEngine on
        SSLCertificateFile /etc/letsencrypt/live/B.domain.com/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/B.domain.com/privkey.pem

        ProxyRequests Off
        <Proxy *>
                Order deny,allow
                Allow from all
        </Proxy>
        ProxyPass / https://1.1.1.2/
        ProxyPassReverse / https://1.1.1.2/
</VirtualHost>

Я активировал его с помощью: a2ensite B. domain.com и перезапустил apache. Результат - внутренняя ошибка сервера, если я позвоню на сайт. Без него у меня такая же ошибка.

Если я позвоню apache2ctl -S , все будет хорошо.

0
задан 20 January 2017 в 20:06
2 ответа

Я попробовал информацию из ezra-s "SSLProxyEngine on", но все равно получаю сообщение об ошибке:

Прокси-сервер не может обработать запрос GET /

Причина: Ошибка во время установления связи SSL с удаленным сервером

После некоторого поиска я нашел рабочее решение.

моя конфигурация /etc/apache2/sites-available/B.domain.com.conf сейчас:

<VirtualHost *:443>
    ServerName B.domain.com
    SSLProxyEngine on
    SSLProxyVerify none
    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName off
    SSLProxyCheckPeerExpire off

    SSLCertificateFile /etc/letsencrypt/live/B.domain.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/B.domain.com/privkey.pem

    ProxyPass / https://1.1.1.2/
    ProxyPassReverse / https://1.1.1.2/

Но остается ли соединение извне безопасным?

1
ответ дан 4 December 2019 в 16:22

Попробуйте более простой метод и измените ProxyPass https на http .

    ProxyPass        / http://1.1.1.2/
    ProxyPassReverse / http://1.1.1.2/

Это обычное дело для внешнего интерфейса (также известного как обратный прокси ), чтобы разговаривать с серверной частью по простому http, если вы достаточно защищаете сеть 1.1.1.0.

Скорее всего, вы вообще не реализовали https-сервер на 1.1.1.2 ... это даст вам внутреннюю ошибку 50x симптомы, которые вы описываете.

0
ответ дан 4 December 2019 в 16:22

Теги

Похожие вопросы