Я пытаюсь аутентифицировать конкретного пользователя, для которого я выпустил сертификат для аутентификации на моем веб-прокси, используя указанный сертификат. Думаю, я перепробовал почти 20 комбинаций следующих вариантов, и у меня ничего не работает. На страницах документации apache все примеры для аутентификации клиента ssl часто основаны на <Location>
директива. Мой случай никогда не упоминается, и сейчас мне интересно, возможно ли это вообще:
<VirtualHost *:8080>
ProxyRequests On
SSLCACertificateFile /etc/apache2/myca/ca.cer
<Proxy "*">
SSLVerifyClient Require
SSLVerifyDepth 10
SSLOptions +FakeBasicAuth +StrictRequire
SSLRequire ( %{SSL_CIPHER} !~ m/^(EXP|NULL)-/ \
and %{SSL_CLIENT_S_DN_O} eq "MyComp" \
and %{SSL_CLIENT_S_DN_OU} eq "IT" \
and %{SSL_CLIENT_S_DN_Email} eq "my@email.com")
</Proxy>
ErrorLog ${APACHE_LOG_DIR}/proxy_error.log
CustomLog ${APACHE_LOG_DIR}/proxy_access.log combined
</VirtualHost>
С приведенной выше конфигурацией прокси работает, но не запрашивает аутентификацию, каждый может его использовать.
SSLVerifyClient Require
вне Proxy
директива и ничего не изменилосьSSLRequire
и ничего не меняетсяSSLOptions
и ничего не меняетсяRequire ssl-verify-client
в пределах Proxy
директиве, и я получаю ошибку 403. Добавление сертификата в браузер ничего не меняет.Я пробовал аналогичную конфигурацию в простом <Location />
директиву, как показано в примерах apache, и она действительно работает. Но я не могу решить эту проблему для своего случая с прокси.