SSLRequire语法问题

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

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

不过,有了这条线,Apache抱怨道:

 SSLRequire: syntax error 

我究竟做错了什么?

我离开了整个.htaccess的主服务器configuration(在一个<Directory>块),问题消失了,所以要么我错过了什么,这是一个错误。

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的证书也是必需的。

根据这个链接 ,SSLRequire已经被弃用了。