Назад | Перейти на главную страницу

Проблемы синтаксиса SSLRequire

Я пытаюсь использовать SSLRequire, чтобы гарантировать, что принимаются только сертификаты с электронной почтой из определенного домена. Это мое SSLRequire заявление, внутри .htaccess файл:

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

Однако в этой строке Apache жалуется:

SSLRequire: syntax error

Что я делаю не так?

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.

Я оффшор целиком .htaccess в конфигурацию основного сервера (внутри <Directory> block), и проблема исчезла, так что либо я что-то пропустил, либо это ошибка.

В соответствии с эта ссылка, SSLRequire с тех пор устарел.