通过证书授权(SSL)

有一个问题。

服务器包含证书( .crt)。 有两个不同的用户。 一个在签名服务器证书的浏览器证书( .p12)中设置 。 用户input文件夹example.com/a

没有证书的用户将进入example.com/b

如何使用设置apache来做到这一点? redirect

对不起我的英语不好 :)

如果我正确理解你,你可以使用mod_rewrite。 我没有testing下面的configuration,但是这是一个你从一开始的地方…

在SSL设置中,您可以使用

SSLVerifyClient optional SSLOptions +StdEnvVars 

这意味着你将允许客户端使用身份validation,但是即使他们不能,也允许他们连接。 为了这个工作,你也需要信任发布了客户端证书的CA; 这是通过添加完成的

 SSLCACertificateFile path/to/file 

到你的configuration,并在该文件中的CA证书。

然后,使用mod_rewrite检查客户端使用您认可的证书设置的环境variables:

  RewriteEngine on RewriteCond %{SSL_CLIENT_VERIFY} SUCCESS RewriteRule ^/(.*) /a/(.*) [L] RewriteCond %{SSL_CLIENT_VERIFY} FAILED RewriteRule ^/(.*) /b/(.*) [L]