Как мне объединить базовую аутентификацию и https? - PullRequest
3 голосов
/ 11 ноября 2010

Я установил частный веб-сайт, который должен быть доступен только нескольким людям через Интернет. Я хочу настроить комбинацию базовой аутентификации и https.

Пока у меня все работает нормально, если я непосредственно наберу https://blah.com/location1. Однако мне нужно , чтобы иметь перенаправление apache http://blah.com/location1 на https://blah.com/location1 и ТОГДА выполнять базовую аутентификацию, т.е. я не хочу, чтобы базовая аутентификация выполнялась до перенаправления. На данный момент это то, что у меня есть в моем конфиге apache.

WSGIScriptAlias /site /path/to/site/apache/site.wsgi

<Directory /path/to/site/apache>
    WSGIApplicationGroup %{GLOBAL}
    Order deny,allow
    Allow from all
</Directory>

<Location /site>
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

    AuthType Basic
    AuthName "Site login"
    AuthUserFile /path/to/site/.htpasswd
    Require valid-user
</Location>

Примечание: Мне нужна только аутентификация для /site. Поэтому я должен иметь возможность доступа к http://blah.com/site1, http://blah.com/site2 без необходимости аутентификации.

Ответы [ 2 ]

1 голос
/ 11 ноября 2010

Проблема с правилами перезаписи, которые «конвертируют» HTTP-запросы в HTTPS-запросы, заключается в том, что они не препятствуют выполнению первого запроса по обычному HTTP (при перенаправлении на HTTPS-URL).

То, что вы могли бы сделать, это разделить ваш сайт на два виртуальных хоста: один для HTTP и один для HTTPS.

На виртуальном хосте HTTP, если вы хотите, переписать, но запретить доступ к <Location /location1>все случаи (только переписать).

На виртуальном хосте HTTPS настройте <Location /location1> с базовой аутентификацией.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...