有一个问题。
服务器包含证书(.crt)。并且有两个不同的用户。一个是在浏览器证书中设置的(.p12),该证书已对服务器证书进行签名。用户进入文件夹example.com/a
没有证书的用户进入example.com/b
如何使用 apache 设置?重定向?
对不起我的英语不好 :)
答案1
如果我理解正确的话,您可以使用 mod_rewrite 来实现这一点。我还没有测试过下面的配置,但它是一个你可以开始的地方……
在 SSL 设置中,您使用
SSLVerifyClient optional
SSLOptions +StdEnvVars
这意味着,如果客户端能够使用身份验证,您将允许它们使用身份验证,但即使它们不能连接,您也会允许它们连接。为了实现这一点,您还需要信任颁发客户端证书的 CA;这可以通过添加
SSLCACertificateFile path/to/file
到您的配置并在该文件中包含 CA 的证书。
然后,使用 mod_rewrite 检查由您批准的证书的客户端设置的环境变量:
RewriteEngine on
RewriteCond %{SSL_CLIENT_VERIFY} SUCCESS
RewriteRule ^/(.*) /a/(.*) [L]
RewriteCond %{SSL_CLIENT_VERIFY} FAILED
RewriteRule ^/(.*) /b/(.*) [L]