<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>11188</bug_id>
          
          <creation_ts>2007-03-22 15:21:44 +0300</creation_ts>
          <short_desc>SSLRequireSSL doesn&apos;t respect context</short_desc>
          <delta_ts>2017-10-16 14:43:40 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>apache2-mod_ssl</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>WORKSFORME</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Grigory Batalov">bga</reporter>
          <assigned_to name="Anton Farygin">rider</assigned_to>
          <cc>rider</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>47040</commentid>
    <comment_count>0</comment_count>
    <who name="Grigory Batalov">bga</who>
    <bug_when>2007-03-22 15:21:44 +0300</bug_when>
    <thetext>Директива SSLRequireSSL игнорирует окружающий контекст типа &lt;Limit&gt; и
&lt;LimitExcept&gt;. Если она присутствует внутри &lt;Location&gt;, то срабатывает всегда,
независимо от ограничений. Пример конфига:

&lt;Location /test&gt;
        &lt;LimitExcept GET&gt;
                &lt;IfDefine SSL&gt;
                        SSLRequireSSL
                &lt;/IfDefine&gt;
        &lt;/LimitExcept&gt;
&lt;/Location&gt;

Открываю http://localhost/test/ и вижу 403 Forbidden. В логах вот что:

access_log
127.0.0.1 - - [22/Mar/2007:05:32:21 +0300] &quot;GET /test/ HTTP/1.0&quot; 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.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>47043</commentid>
    <comment_count>1</comment_count>
    <who name="solo">solo</who>
    <bug_when>2007-03-22 16:13:42 +0300</bug_when>
    <thetext>Если я правельно понял документуцию (см.
http://httpd.apache.org/docs/2.2/mod/mod_ssl.html#sslrequiressl) то так и должно
быть: деректива SSLRequireSSL работает на уровне виртуального хоста/директории.

PS: &lt;LimitExcept&gt;/&lt;Limit&gt; могут быть непредназначены для её обхода. Во всяком
случаи в описании &lt;Limit&gt; (см.
http://httpd.apache.org/docs/2.2/mod/core.html#limit) есть предупреждение &quot;n the
general case, access control directives should not be placed within a &lt;Limit&gt;
section.&quot;. Возможно, оно относится к делу...

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>47046</commentid>
    <comment_count>2</comment_count>
    <who name="Grigory Batalov">bga</who>
    <bug_when>2007-03-22 16:37:57 +0300</bug_when>
    <thetext>&gt;Если я правельно понял документуцию (см.
&gt;http://httpd.apache.org/docs/2.2/mod/mod_ssl.html#sslrequiressl) то так и должно
&gt;быть: деректива SSLRequireSSL работает на уровне виртуального хоста/директории.

Limit тоже работает на уровне директорий и ограничивает вложенные инструкции
указанными методами (GET, POST и т.п.)

&gt;PS: &lt;LimitExcept&gt;/&lt;Limit&gt; могут быть непредназначены для её обхода. Во всяком
&gt;случаи в описании &lt;Limit&gt; (см.
&gt;http://httpd.apache.org/docs/2.2/mod/core.html#limit) есть предупреждение &quot;n the
&gt;general case, access control directives should not be placed within a &lt;Limit&gt;
&gt;section.&quot;. Возможно, оно относится к делу...

Это не предупреждение а пояснение, что обычно доступ не требуется ограничивать
внутри секции Limit. А уже следующий абзац описывает, как это сделать, когда нужно:

The purpose of the &lt;Limit&gt;  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 &lt;Limit&gt; bracket will have no effect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>47052</commentid>
    <comment_count>3</comment_count>
    <who name="solo">solo</who>
    <bug_when>2007-03-22 17:03:46 +0300</bug_when>
    <thetext>OK. Тогда, думаю, это вопрос к апстриму (темболие, что ситуация повторяется для
2.0.59 и 2.2.4).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166362</commentid>
    <comment_count>4</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2017-10-16 14:43:40 +0300</bug_when>
    <thetext>Закрываю за давностью. Если актуально - открывайте и вешайте в апстрим.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>