Директива SSLRequireSSL игнорирует окружающий контекст типа <Limit> и <LimitExcept>. Если она присутствует внутри <Location>, то срабатывает всегда, независимо от ограничений. Пример конфига: <Location /test> <LimitExcept GET> <IfDefine SSL> SSLRequireSSL </IfDefine> </LimitExcept> </Location> Открываю http://localhost/test/ и вижу 403 Forbidden. В логах вот что: access_log 127.0.0.1 - - [22/Mar/2007:05:32:21 +0300] "GET /test/ HTTP/1.0" 403 1064 error_log [Thu Mar 22 05:32:21 2007] [error] [client 127.0.0.1] access to /var/www/apache2/html/test/ failed, reason: SSL connection required Такое поведение мешает использовать Subversion: желательно разрешить запись только авторизовавшимся клиентам, а передавать пароль по HTTP небезопасно, лучше потребовать HTTPS. Наблюдается на apache2-2.0.59 и apache2-2.2.4.
Если я правельно понял документуцию (см. http://httpd.apache.org/docs/2.2/mod/mod_ssl.html#sslrequiressl) то так и должно быть: деректива SSLRequireSSL работает на уровне виртуального хоста/директории. PS: <LimitExcept>/<Limit> могут быть непредназначены для её обхода. Во всяком случаи в описании <Limit> (см. http://httpd.apache.org/docs/2.2/mod/core.html#limit) есть предупреждение "n the general case, access control directives should not be placed within a <Limit> section.". Возможно, оно относится к делу...
>Если я правельно понял документуцию (см. >http://httpd.apache.org/docs/2.2/mod/mod_ssl.html#sslrequiressl) то так и должно >быть: деректива SSLRequireSSL работает на уровне виртуального хоста/директории. Limit тоже работает на уровне директорий и ограничивает вложенные инструкции указанными методами (GET, POST и т.п.) >PS: <LimitExcept>/<Limit> могут быть непредназначены для её обхода. Во всяком >случаи в описании <Limit> (см. >http://httpd.apache.org/docs/2.2/mod/core.html#limit) есть предупреждение "n the >general case, access control directives should not be placed within a <Limit> >section.". Возможно, оно относится к делу... Это не предупреждение а пояснение, что обычно доступ не требуется ограничивать внутри секции Limit. А уже следующий абзац описывает, как это сделать, когда нужно: The purpose of the <Limit> directive is to restrict the effect of the access controls to the nominated HTTP methods. For all other methods, the access restrictions that are enclosed in the <Limit> bracket will have no effect.
OK. Тогда, думаю, это вопрос к апстриму (темболие, что ситуация повторяется для 2.0.59 и 2.2.4).
Закрываю за давностью. Если актуально - открывайте и вешайте в апстрим.