gpt4 book ai didi

apache2 - 在 LocationMatch 指令中使用否定

转载 作者:行者123 更新时间:2023-12-02 11:49:30 25 4
gpt4 key购买 nike

我们的网站在 apache 上运行,并使用客户端证书进行保护。到目前为止,只有一个证书可以提供对整个站点的访问。现在,我们需要将 jira 暴露给一组新用户,这些用户不能访问除 jira 之外的任何其他内容。我为该组创建了一个单独的证书,并计划使用 SSLRequire 和 Location/LocationMatch 组合来区分它们。

所以标准是:

  1. 拥有旧证书的用户可以访问完整网站
  2. 拥有新证书的用户只能访问/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>

最佳答案

apache 2.2 不支持负正则表达式

参见https://issues.apache.org/bugzilla/show_bug.cgi?id=10932

不知道上个apache版本有没有修复。

作为解决方法,请使用:

<LocationMatch "/[^s][^t][^a][^t][^i][^c]">
</LocationMatch>

<LocationMatch "^/(?!static)">
</LocationMatch>

关于apache2 - 在 LocationMatch 指令中使用否定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/435959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com