Apache 条件配置

Apache 条件配置

是否可以使用环境变量或类似的东西以某种方式动态地包含/排除块?

<LocationMatch ...>
  SetEnvIf X-Requested-With XmlHttpRequest xhr
  <If xhr>
    SSLVerifyClient none
  </If>
  <If !xhr>
    SSLVerifyClient optional
  </If>
</LocationMatch>

答案1

为了回答您尝试解决的问题(给出 Apache 代码片段而不是实际问题):

您无法在 SSL 握手完成后强制执行客户端证书,当然也不能在检查 HTTP 标头后强制执行,因此您的想法是不可能的。

此外,SSLVerifyClient optional任何主流浏览器都不支持它,并会导致奇怪的 SSL 连接错误。

在服务器端执行此操作的唯一方法是创建一个专用于 XHR 请求的单独 vhost。

但是,在客户端,您是否尝试过xhr.withCredentials = true。从内存中,这会通过 XHR 请求发送客户端证书和任何其他身份验证数据。

答案2

你的意思是像这样

相关内容