我在虚拟主机中有一个<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。
是否有可能将不authentication的访问者“路由”到不同于具有证书的访问者的位置? 例如没有证书的那些获得较less的function…
谢谢
您可以使用mod_rewrite将人员发送到其他地方。
首先,您必须configuration您的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