Bug 11188 - SSLRequireSSL doesn't respect context
Summary: SSLRequireSSL doesn't respect context
Status: CLOSED WORKSFORME
Alias: None
Product: Sisyphus
Classification: Development
Component: apache2-mod_ssl (show other bugs)
Version: unstable
Hardware: all Linux
: P2 normal
Assignee: Anton Farygin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-03-22 15:21 MSK by Grigory Batalov
Modified: 2017-10-16 14:43 MSK (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Grigory Batalov 2007-03-22 15:21:44 MSK
Директива 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 solo 2007-03-22 16:13:42 MSK
Если я правельно понял документуцию (см.
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 Grigory Batalov 2007-03-22 16:37:57 MSK
>Если я правельно понял документуцию (см.
>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 solo 2007-03-22 17:03:46 MSK
OK. Тогда, думаю, это вопрос к апстриму (темболие, что ситуация повторяется для
2.0.59 и 2.2.4).
Comment 4 Anton Farygin 2017-10-16 14:43:40 MSK
Закрываю за давностью. Если актуально - открывайте и вешайте в апстрим.