Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.
Apache Error: AH01618: user 'admin': authentication failure for "/": Password Mismatch Linux / DevOps

Apache Error AH01618: user authentication failure Password Mismatch — Решение

Обновлено: 18.08.2026  ·  Официальная база знаний

Пользователь не может пройти HTTP Basic авторизацию на сайте: диалоговое окно ввода логина и пароля появляется повторно, после чего возвращается ошибка 401 Unauthorized. В журнале error.log регистрируется ошибка сверки пароля: [auth_basic:error] [pid 1234:tid 5678] [client 192.168.1.5:51234] AH01618: user 'admin': authentication failure for "/admin": Password Mismatch.

Причина сбояЧто произошлоМеханизм ошибки
Неверный ввод пароляОпечатка пользователяВведенный пароль не совпадает с хэшем в .htpasswd
Несовместимый алгоритм хэшаХэш сгенерирован старой утилитой (MD5/SHA1/Crypt)Apache собран без поддержки устаревшего алгоритма
Повреждение файла .htpasswdЛишние пробелы или перенос строк Windows (\r\n)Нарушение структуры текстовой строки user:hash
  • Пользователю блокируется доступ к закрытому разделу сайта.
  • В логах фиксируются множественные попытки ввода неверных учетных данных.
  1. Перегенерируйте пароль пользователя в файле .htpasswd с использованием современного и безопасного алгоритма хэширования bcrypt (флаг -B):
    # Для изменения пароля существующего пользователя:
    sudo htpasswd -B /etc/apache2/.htpasswd admin
    
    # Для создания нового файла с нуля (флаг -c перезапишет файл!):
    sudo htpasswd -c -B /etc/apache2/.htpasswd admin
  2. Проверьте права доступа: файл .htpasswd должен быть доступен для чтения системному пользователю веб-сервера (www-data или apache), но закрыт для прямой отдачи клиентам:
    sudo chown root:www-data /etc/apache2/.htpasswd
    sudo chmod 640 /etc/apache2/.htpasswd
  3. Проверьте конфигурацию защиты каталога в файле виртуального хоста или .htaccess:
    <Directory /var/www/html/admin>
        AuthType Basic
        AuthName "Restricted Area"
        AuthBasicProvider file
        AuthUserFile /etc/apache2/.htpasswd
        Require valid-user
    </Directory>
  4. Убедитесь, что файл .htpasswd не содержит символов возврата каретки Windows (CRLF). Преобразуйте файл в формат UNIX:
    sudo dos2unix /etc/apache2/.htpasswd 2>/dev/null || true
  5. Перезагрузите веб-сервер: sudo systemctl reload apache2 # или httpd.
Безопасность расположения .htpasswd: Никогда не размещайте файл .htpasswd внутри публичной директории сайта DocumentRoot (например, внутри /var/www/html/). Храните его на уровень выше — в каталоге /etc/apache2/ или /etc/httpd/, чтобы предотвратить его прямую загрузку злоумышленниками.
Практический опыт инженера: Если Basic Auth настраивается для API, помните, что спецсимволы в пароле (например, `:`, `#`) при неправильном URL-encoding в заголовке `Authorization: Basic ` могут приводить к ложным Password Mismatch.

Частые вопросы (FAQ)

Какой алгоритм хэширования в htpasswd самый безопасный?

Наиболее безопасным является алгоритм bcrypt (опция -B в утилите htpasswd). Он устойчив к перебору на GPU и использует адаптивную трудоемкость (cost).

Почему htpasswd -m считается устаревшим?

Опция -m использует алгоритм MD5 (apr1), который на сегодняшний день является криптографически слабым и легко взламывается методами перебора по радужным таблицам.

Как проверить содержимое файла .htpasswd?

Выполните cat /etc/apache2/.htpasswd. Каждая строка должна иметь строгий формат: username:$2y$05$...хэш_пароля.

Как добавить нового пользователя, не затирая старых?

Выполняйте команду БЕЗ флага -c: sudo htpasswd -B /etc/apache2/.htpasswd newuser (флаг -c используется только при создании нового файла).