Bug 11188 - SSLRequireSSL doesn't respect context
: SSLRequireSSL doesn't respect context
Status: CLOSED WORKSFORME
: Sisyphus
(All bugs in Sisyphus/apache2-mod_ssl)
: unstable
: all Linux
: P2 normal
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2007-03-22 15:21 by
Modified: 2017-10-16 14:43 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2007-03-22 15:21:44
Директива 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.
------- Comment #1 From 2007-03-22 16:13:42 -------
Если я правельно понял документуцию (см.
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.". Возможно, оно относится к делу...

------- Comment #2 From 2007-03-22 16:37:57 -------
>Если я правельно понял документуцию (см.
>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.
------- Comment #3 From 2007-03-22 17:03:46 -------
OK. Тогда, думаю, это вопрос к апстриму (темболие, что ситуация повторяется для
2.0.59 и 2.2.4).
------- Comment #4 From 2017-10-16 14:43:40 -------
Закрываю за давностью. Если актуально - открывайте и вешайте в апстрим.