Apache обратный прокси для HTTPS в HTTP - PullRequest
0 голосов
/ 04 августа 2020

Я пытаюсь настроить обратный прокси-сервер для перенаправления https-запроса на HTTP-URL. У меня есть приложение java, которое вызывает tomcat и размещает некоторые службы в этом экземпляре tomcat.

Другое приложение будет вызывать эти службы с помощью https, и это должно быть перенаправлено по URL-адресу http. Ниже представлена ​​конфигурация прокси, которую я сделал.

Включены модули mod_ssl.so, mod_proxy.so и mod_proxy_http.so в httpd.conf. А также добавил ниже IFModule в тот же файл.

<IfModule ssl_module>
        Listen 443
</IfModule>

Ниже приведено содержимое файла vhosts.conf.

<VirtualHost *:443>
        ServerName domain.name.com
        ServerAdmin admin@domain.com
        DocumentRoot C:/Apache24/htdocs

    #    ErrorLog ${APACHE_LOG_DIR}/error.log
     #   CustomLog ${APACHE_LOG_DIR}/access.log combined

        SSLEngine On
        SSLCertificateFile /certificate_path
        SSLCertificateKeyFile /privatekey_path
        SSLCertificateChainFile /chain_cert_path

        AllowEncodedSlashes NoDecode
        RequestHeader set X-Forwarded-Proto "https"
        RequestHeader set X-Forwarded-Port "443"

        ProxyRequests Off
        <Proxy *>
            AddDefaultCharset Off
            Order deny,allow
            Allow from all
        </Proxy>

        RedirectMatch ^/metadata-agent$ /metadata-agent/
        ProxyPass /metadata-agent/ http://localhost:8084/ nocanon
        ProxyPassReverse /metadata-agent/ http://localhost:8084/

        RedirectMatch ^/tdv$ /tdv/
        ProxyPass /tdv/ http://localhost:9400/ nocanon
        ProxyPassReverse /tdv/ http://localhost:9400/

        ProxyErrorOverride Off
        ProxyPassReverseCookieDomain domain.name.com localhost
        ProxyPassReverseCookiePath / /
        ProxyPreserveHost on

        SSLProxyEngine On
        SSLProxyCheckPeerCN off
        SSLProxyCheckPeerExpire off

</VirtualHost>

Я перепробовал все возможные ответы, доступные в SOF. Но ничего не работает. Я получаю ответ со следующим URL-адресом:

http://localhost: 8084 / tdv-soap / datasource / all

, когда я заменяю его на https://domain.name.com/tdv-soap/datasource/all, выдает ошибку «сервер недоступен». Я также сопоставил localhost с именем домена в файле hosts.

Любая помощь приветствуется.

1 Ответ

1 голос
/ 05 августа 2020

Проблема была с прокси-доступом. Я внес исправления, указанные ниже.

До исправления:

RedirectMatch ^/metadata-agent$ /metadata-agent/
ProxyPass /metadata-agent/ http://localhost:8084/ nocanon
ProxyPassReverse /metadata-agent/ http://localhost:8084/

RedirectMatch ^/tdv$ /tdv/
ProxyPass /tdv/ http://localhost:9400/ nocanon
ProxyPassReverse /tdv/ http://localhost:9400/

После исправления:

RedirectMatch ^/metadata-agent$ /metadata-agent/
ProxyPass / http://localhost:8084/ nocanon
ProxyPassReverse / http://localhost:8084/

RedirectMatch ^/tdv$ /tdv/
ProxyPass / http://localhost:9400/ nocanon
ProxyPassReverse / http://localhost:9400/

Это устранило проблему.

...