1

Я использую nginx и когда пароль защищает каталог и вводит данные для входа, я 403 ((O)

        location ~ ^/documents {
        auth_basic            "Access restricted.";
#Old line.
#       auth_basic_user_file   /private/pass;
#New line.
       auth_basic_user_file   /var/www/site.com/private/pass;
}

файл пропуска похож на

thisID:thisPass: Hello comment!

Любой совет?

3 ответа3

1

Хотя это не соответствует вашей ошибке, которую вы получаете ...

файл пропуска похож на

thisID:thisPass: Привет, комментарий!

Предполагается, что пароль действительно зашифрован? Я думаю, что это должно быть; Я сомневаюсь, что вы можете просто вставить понятный человеку пароль в этом файле паролей.

Если nginx ожидает зашифрованные / зашифрованные пароли в этом файле, то он никогда не найдет хорошего совпадения, если сохраненный пароль использует другой формат. (Чтобы найти совпадение, он закодирует пароль, введенный пользователем, и сравнит этот закодированный ввод с закодированным паролем, как известно из файла.) И действительно, согласно документации, пароли должны быть закодированы функцией crypt (3).Вы можете создать файл паролей с помощью программы htpasswd из Apache.

Это по-прежнему не объясняет фактическое сообщение об ошибке, но если в файле паролей содержатся читаемые человеком пароли, то это, несомненно, приведет к 402 Unauthorized или 403 Forbidden .

Можно также создать такой закодированный пароль онлайн, на различных сайтах.

1

Мой опыт борьбы с такого рода вещами заключается в том, что, когда компьютер сообщает вам, что файл или каталог не существует ... его там нет! :-)

Попробуйте найти файл относительно корня сервера, т.е.

auth_basic_user_file   /private/pass;
0

Я думаю, что пути к файлам / файлам не совпадают, как предполагалось. Вы уверены, что синтаксис определенно правильный в отношении путей к файлам?

Кроме того, имеет ли сервер доступ для чтения к рассматриваемому файлу паролей?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .