SSLRequire – 文件function

我在Apache 2.2和我能find的SSLRequire 文件function的小文档上遇到了麻烦。 我正在尝试使用SSLRequire检查请求中的客户端证书的电子邮件属性。

httpd.conf文件中的以下选项效果很好:

SSLRequire %{SSL_CLIENT_S_DN_Email} in { "[email protected]" } 

但正如我可以在文档中阅读,您可以使用filter的值列表。

从官方文档引用:

file (文件名) – 这个函数接受一个string参数并扩展到文件的内容。 这对匹配正则expression式等内容特别有用。

所以,按照文档,我把以下内容放在httpd.conf文件中:

 SSLRequire %{SSL_CLIENT_S_DN_Email} in { file("/etc/httpd/mail-list") } 

文件邮件列表只包含一行内容[email protected] (试图模拟没有file的选项)。

但是当我尝试访问我的HTTPS服务器时,我在日志中看到以下内容:

 Failed expression: %{SSL_CLIENT_S_DN_Email} in { file("/etc/httpd/mail-list") } 

此消息通常在模式无法应用时出现。 有人可以帮我在这里,我怎样才能使用这个function?

根据apache-modssl邮件列表中的这个旧线程 , file()file()的内容读入单个string,因此引用文件中的特殊字符(如换行符)可能会破坏SSLRequire语法。

鉴于这是由mod_ssl原作者张贴,我相信这个理论是现货。

/etc/httpd/mail-list尝试以下内容:

 "[email protected]","[email protected]","[email protected]" 

没有尾随的换行符