Как создать запись htpasswd
Генератор строки htpasswd
Htpasswd - это текстовый файл, где каждая строка вида user:hash задает одного пользователя базовой HTTP-авторизации. Так закрывают доступ к папке или сайту на Apache и Nginx, не поднимая отдельную систему входа.
Инструмент собирает такую строку по логину и паролю: пароль превращается в хеш, а сам он в открытом виде в файл не попадает. Готовую строку остается вставить в файл паролей.
Как подключить файл паролей
В Apache в.htaccess или конфиге виртуального хоста указывают:
- AuthType Basic и понятное имя окна входа в AuthName
- путь к файлу паролей в AuthUserFile
- Require valid-user, чтобы пускать только тех, кто есть в файле
В Nginx те же данные задают директивами auth_basic и auth_basic_user_file внутри location или server.
Про алгоритмы и безопасность
APR1 - это MD5-схема Apache со случайной солью, ее понимают оба сервера. SHA1 в формате {SHA} короче, но идет без соли, поэтому подходит лишь для совместимости со старыми настройками. Базовая авторизация передает логин и пароль в почти открытом виде, поэтому включайте ее только поверх HTTPS.
Как сгенерировать строку htpasswd
-
Введите логин и пароль
Заполните поля "Логин" и "Пароль" для будущей записи.
-
Выберите алгоритм
Укажите APR1 (MD5) или SHA1 в списке.
-
Нажмите "Сгенерировать"
Скопируйте готовую строку user:hash и добавьте ее в файл .htpasswd.
Вопросы и ответы
APR1-MD5 и SHA1 - оба понимают Apache и Nginx в модуле базовой авторизации
APR1 - MD5-вариант Apache со случайной солью, работает почти везде; SHA1 (формат {SHA}) без соли, берите его только для совместимости со старыми конфигами
В файл паролей, обычно .htpasswd, на который ссылается директива AuthUserFile; в сам .htaccess строку user:hash не пишут
Сгенерируйте строку для каждого логина и поместите их по одной в строке файла паролей