Назад | Перейти на главную страницу

Apache удаляет заголовок авторизации

В моей настройке Apache действует как обратный прокси. Серверу приложений, работающему на порту 8081, требуется действительный Authorization заголовок. Заголовок задается клиентским приложением. Кажется, что Apache удаляет этот заголовок. Он не доходит до сервера через порт 8081.

<VirtualHost mydomain.com:443>
    ServerName mydomain.com
    ServerAlias www.mydomain.com

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

    SSLEngine On
    SSLCertificateFile /etc/apache2/ssl/apache.pem

    ProxyPreserveHost On
    ProxyRequests Off
    ProxyPass / http://mydomain.com:8081/
    ProxyPassReverse / http://mydomain.com:8081/
</VirtualHost>

Чтобы убедиться, что сервер на порту 8081 работает правильно, я добавил RequestHeader set Authorization "Basic XZY" к этой конфигурации. В этом случае заголовок корректно обрабатывается сервером на порту 8081.

Я также подключился к серверу через порт 8081 напрямую от клиента, чтобы убедиться, что клиент действительно устанавливает правильный заголовок. Это тоже хорошо сработало.

Из mod_proxy_http документы:

прокси-цепочка-авторизация:

Если прокси-сервер требует аутентификации, он будет читать и использовать учетные данные для аутентификации прокси, отправленные клиентом. С proxy-chain-auth он также пересылает учетные данные следующему прокси в цепочке. Это может быть необходимо, если у вас есть цепочка прокси, которые совместно используют информацию для аутентификации. Предупреждение о безопасности: не устанавливайте это, если вы не знаете, что вам это нужно, поскольку это пересылает конфиденциальную информацию!

Это то, что вы ищите?

Оказалось, причина в неработающей клиентской реализации.