Назад | Перейти на главную страницу

Как принудительно выполнить авторизацию .htaccess по ssl?

Я пытаюсь заставить конкретный каталог требовать только разрешенные IP-адреса и действительное имя пользователя / пароль с помощью базовой авторизации. Чтобы гарантировать, что имя пользователя / пароль отправляются в зашифрованном виде, я хочу, чтобы каталог также принудительно использовал SSL. Вот что у меня в файле .htaccess:

# Force HTTPS-Connection
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*)  https://www.mywebsite.com%{REQUEST_URI} [R,L]

## password begin ##
AuthName     "Restricted Access"
AuthUserFile /var/www/admin/.htpasswd
AuthType     Basic
Require valid-user
Order deny,allow
Deny from all
Allow from 79.1.231.151 62.123.134.83
Satisfy All

К сожалению, когда я обращаюсь к этому каталогу по протоколу http, он запрашивает пароль перед перенаправлением страницы на безопасную версию. Это означает, что пароль отправляется в незашифрованном виде. Что я делаю не так? Есть ли способ сделать это?

Перезапись и перенаправление обрабатываются после авторизации. Однако: сначала рассматриваются псевдонимы в вашем httpd.conf.

Итак, что я сделал, чтобы отправить свой http: // servername / webmail на https: //webmail.servername нужно было поместить его в httpd.conf следующим образом:

<IfModule alias_module>
   Redirect permanent /webmail https://webmail.servername
</IfModule>

Базовая авторизация может остаться в вашем .htaccess и будет выполнена только один раз ПОСЛЕ выполнения перенаправления ...

Попробуйте поставить SSLRequireSSL в вашем файле .htaccess или в глобальной конфигурации Apache httpd.

Если у вас есть доступ к конфигурации Apache, добавьте раздел аутентификации в VirtualHost с включенным SSL. Тогда перенаправление всегда будет происходить первым.

Кроме того, используя mod_rewrite выполнить простое перенаправление - это немного излишне. Использовать Перенаправить вместо этого директива. Возможно, это даже решит вашу проблему, как я считаю mod_rewrite rules - это некоторые из последних обрабатываемых директив, непосредственно перед тем, как файл будет фактически взят из файловой системы.