我们的站点在 apache 上运行,并使用客户端证书进行保护。到目前为止,只有一个证书可以提供对整个站点的访问权限。现在,我们需要将 jira 公开给一组新用户,这些用户除了 jira 之外不能访问任何其他内容。我为该组创建了一个单独的证书,并计划使用 SSLRequire 和 Location/LocationMatch 组合来区分它们。
所以标准是:
- 旧证书的用户可以访问完整的站点
- 拥有新证书的用户只能访问 /jira URL 模式
我尝试了几种组合,但无法否定 LocationMatch 的工作。任何帮助,将不胜感激。
httpd.conf 文件如下所示:
SSLVerifyClient require
SSLVerifyDepth 1
SSLCACertificateFile /etc/apache2/ssl/myca.crt
<Location /jira>
SSLRequire %{SSL_CLIENT_S_DN_CN} in {"AllUsers", "JiraUsers"}
</Location>
<LocationMatch /!(jira)>
SSLRequire %{SSL_CLIENT_S_DN_CN} eq "AllUsers"
</LocationMatch>