Apache 2.4.25 VirtualHost (Proxy и ProxyReverse) с SSL - PullRequest
0 голосов
/ 08 мая 2019

У меня установлено два сервиса на разных IP-адресах, в одном из них находится веб-сайт www.test.org.bo (IP: 172.16.0.11), в другом NextCloud в облаке домена . test.org.bo (IP: 172.16.0.13), оба имеют сертификат SSL. Перед началом работы с SSL веб-сайт был опубликован в Интернете и NextCloud через виртуальный хост (ProxyPass и ProxyPassReverse) в конфигурации веб-сайта Apache. Оба по общедоступному IP, по порту 80 HTTP, как указано:

<VirtualHost *:80>
    ProxyPreserveHost On
    ServerName cloud.test.org.bo
    ProxyPass / http://172.16.0.13/
    ProxyPassReverse / http://172.16.0.13/
</VirtualHost>

Однако теперь, когда каждый сайт имеет сертификат и доступ к нему осуществляется через SSL через порт 443, используя Apache VirtualHost, вы можете получить доступ к https://www.test.org.bo, только тогда, когда вы хотите получить доступ к https://cloud.test.org.bo существует перенаправление на https://www.test.org.bo. Конфигурация, применяемая на сервере Apache веб-сайта, следующая:

В файле / etc / apache2 / sites-enabled / test.org.bo-ssl.conf

<IfModule mod_ssl.c>
    <VirtualHost *:443>
        ServerAdmin webmaster@test.org.bo
        ServerName www.test.org.bo
        DocumentRoot /var/www/testweb

        ProxyRequests Off
        ProxyPreserveHost Off

        SSLEngine On
        SSLProxyEngine On

        SSLCertificateFile /etc/letsencrypt/live/test.org.bo/cert.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/test.org.bo/privkey.pem

        ErrorLog ${APACHE_LOG_DIR}/www-ssl-error.log
        CustomLog ${APACHE_LOG_DIR}/www-ssl-access.log combined

        <FilesMatch "\.(cgi|shtml|phtml|php|py)$">
            SSLOptions +StdEnvVars
        </FilesMatch>
        <Directory /usr/lib/cgi-bin>
            SSLOptions +StdEnvVars
        </Directory>

        # ProxyPass / https://172.16.0.11/
        # ProxyPassReverse / https://172.16.0.11/

    </VirtualHost>
</IfModule>

Кроме того, конфигурация для NextCloud в файле / etc / apache2 / sites-enabled / cloud.test.org.bo-ssl.conf

<VirtualHost 172.16.0.13:443>
    SSLEngine On
    # SSLProxyEngine On
    ServerName cloud.test.org.bo

    # ProxyPreserveHost Off     
    ProxyRequests Off

    ProxyPass / https://cloud.test.org.bo/
    ProxyPassReverse / https://cloud.test.org.bo/
</VirtualHost>

Внимательно к вашим комментариям, заранее благодарю за помощь.

...