у меня есть <Location>
внутри виртуального хоста, который выглядит так:
<Location /app1/>
SSLVerifyClient require
SSLVerifyDepth 2
SSLRequireSSL
SSLOptions +OptRenegotiate
SSLCipherSuite HIGH
SSLRequire %{SSL_CLIENT_S_DN_OU} eq "Customer1" \
or %{SSL_CLIENT_S_DN_OU} eq "Customer2" \
or %{SSL_CLIENT_S_DN_OU} eq "Customer3"
</Location>
Это требует, чтобы каждый, кто хочет получить доступ к / app1 /, предоставил серверу сертификат клиента. Бэкэнд-сервер - tomcat.
Можно ли «направлять» посетителей, не прошедших проверку подлинности, в другое место, кроме посетителей, у которых есть сертификат? Например. те, у кого нет сертификата, получают меньше функциональности ...
Спасибо
Вы можете использовать mod_rewrite, чтобы отправлять людей куда-нибудь еще.
Сначала вы должны настроить свой Apache так, чтобы он позволял людям без сертификата (т. Е. Использовать SSLVerifyClient optional
Обратите внимание, что это может не работать в некоторых браузерах. Проверьте это перед запуском.
Затем, в качестве второго шага, вы можете использовать mod_rewrite следующим образом:
RewriteEngine On
# Only match requests which don't have a proper client certificate
RewriteCond %{SSL:SSL_CLIENT_VERIFY} !SUCCESS
# Prefix the URL for those people with /guest
RewriteRule ^/(.*)$ /guest/$1