SSLRequire 语法问题

SSLRequire 语法问题

我正在尝试使用 SSLRequire 来确保只接受来自特定域的电子邮件的证书。这是我SSLRequire在文件中的声明.htaccess

SSLRequire %{SSL_CLIENT_S_DN_Email} =~ m/^.+@example\.com$/

然而,Apache 却抱怨说:

SSLRequire: syntax error

我究竟做错了什么?

答案1

我将整个工作转移.htaccess到主服务器配置(一个<Directory>块内)后问题就消失了,所以要么是我错过了什么,要么就是有一个错误。

答案2

http://wiki.cacert.org/ApacheServerClientCertificateAuthentication

有时您想说 - 接受来自 CAcert 的任何包含 @example.com 电子邮件的证书,而不必担心维护长列表。这可以按如下方式实现:

SSLRequire %{SSL_CLIENT_S_DN_Email} =~ m/^[^@]*@example\.com$/

完整列表请点击这里http://httpd.apache.org/docs/trunk/mod/mod_ssl.html#sslrequire。有时证书可以包含多个电子邮件,因此:

SSLRequire %{SSL_CLIENT_S_DN_Email} =~ m/^[^@]*@example\.com$/
          or %{SSL_CLIENT_S_DN_Email_0} =~ m/^[^@]*@example\.com$/
          or %{SSL_CLIENT_S_DN_Email_1} =~ m/^[^@]*@example\.com$/
          or %{SSL_CLIENT_S_DN_Email_2} =~ m/^[^@]*@example\.com$/
          or %{SSL_CLIENT_S_DN_Email_3} =~ m/^[^@]*@example\.com$/

您应该更改错误消息(上方),以表明还需要@example.com 的证书。

答案3

根据此链接,SSLRequire 从那时起就被弃用了。

相关内容