Только базовая аутентификация Apache SSL - PullRequest
3 голосов
/ 13 февраля 2012

Мне дали настройку, в которой Apache работает под Windows, и у нас есть две папки, которые требуют базовой аутентификации с помощью .htpasswd.

Сначала я проверил, что аутентификация работает:

AuthUserFile E:/path-to/.htpasswd
AuthType Basic
AuthName "Secure area"
Require valid-user

Это работало хорошо, но, конечно, не отправляло учетные данные через SSL.Я пытался использовать RewriteRule для отправки любых запросов без HTTPS на HTTPS в любую из этих папок, и для этого требуется, чтобы пользователь входил дважды - один раз через HTTP и один раз через HTTPS.

Я нашел множество людей с этимпроблема, и решение, которое использует большинство людей, выглядит следующим образом:

SSLOptions +StrictRequire
SSLRequireSSL
SSLRequire  %{HTTP_HOST} eq "www.domain.com"
AuthUserFile E:/path-to/.htpasswd
AuthName "Secure area"
AuthType basic
require valid-user
ErrorDocument 403 https://www.domain.com/secure-area

Так что я поместил это в htaccess внутри каждой из двух защищенных папок.Это требует от пользователя входа в систему один раз, через HTTPS, как и должно быть, но, конечно, он не отправляет его в файл, который он запросил.Скорее, он отправляет их в корень папки.

Мы часто направляем пользователей к определенным файлам внутри этих каталогов, и я просто не могу найти ничего, что могло бы аутентифицировать их с базовой аутентификацией через HTTPS при попытке сделатьэтот.Возможно ли это на Apache?

Спасибо, Джонатан

1 Ответ

0 голосов
/ 13 февраля 2015

Если это для определенного файла, вы можете обернуть его в

</p>

<p><div class="snippet" data-lang="js" data-hide="false">
<div class="snippet-code">
<pre class="snippet-code-html lang-html prettyprint-override"><code><files *.php>
  
</files>

или что-то еще, посмотрите, будет ли это иметь значение, так как он будет аутентифицироваться для запрошенного файла, а не для каталога, в котором этот файл находится?

...