Ошибки

Ошибка 401 Unauthorized: что значит и как исправить

401 Unauthorized — сервер не выполнил запрос, потому что в нём нет действующих учётных данных: логина и пароля, токена или ключа. Если вы их вводили, значит, сервер их не принял. Название кода путает: речь не о правах, а о том, что сервер не знает, кто вы. Когда сервер знает, но не пускает, он отвечает 403.

Обновлено 07.10.2026≈ 4 мин чтения
Содержание 9

Что означает код 401

По стандарту HTTP сервер отвечает 401, когда в запросе нет подходящих учётных данных. Вместе с кодом он обязан прислать заголовок WWW-Authenticate — в нём сказано, каким способом входить: например, Basic (логин и пароль) или Bearer (токен). Увидев такой ответ, браузер показывает окно входа или программа повторяет запрос с данными для входа.

Если учётные данные в запросе были, 401 значит, что сервер их отклонил: неверный пароль, просроченный или чужой токен.

401 или 403

401 Unauthorized403 Forbidden
Что сервер знает о васНичего: вы не вошли или вход не удалсяЗнает или ему это не важно
Поможет ли входДа, с правильными даннымиНет: этим данным доступ не положен
Что прислать в ответОбязателен заголовок WWW-AuthenticateМожно объяснить причину в тексте ответа

Если вы посетитель

  1. Проверьте логин и пароль: раскладку, Caps Lock, лишний пробел при копировании.
  2. Если окно входа не появляется, а сразу открывается страница 401, — браузер мог запомнить неверные данные. Откройте адрес в режиме инкогнито: там окно появится снова.
  3. Если 401 появляется в приложении или при обращении к API, получите новый токен или ключ: у старого мог закончиться срок.
  4. Если вы не знаете пароля, значит, раздел закрыт не для вас. Узнать его можно только у владельца сайта.

Как закрыть раздел паролем в nginx

Окно с логином и паролем — это Basic-аутентификация. В nginx её включают две директивы:

location /admin/ {
    auth_basic           "Restricted";
    auth_basic_user_file /etc/nginx/.htpasswd;
}

Файл с паролями создают утилитой htpasswd из пакета apache2-utils или командой openssl passwd — оба способа описаны в документации nginx:

sudo apt install apache2-utils
sudo htpasswd -c /etc/nginx/.htpasswd admin

Ключ -c создаёт файл заново. Второго пользователя добавляйте без него, иначе первый пропадёт. После правки проверьте настройки (sudo nginx -t) и перечитайте их (sudo systemctl reload nginx).

Basic-аутентификация передаёт логин и пароль в каждом запросе почти открытым текстом (в кодировке Base64), поэтому включайте её только на сайте с HTTPS.

Почему вместо 401 приходит 403 или 500

Ошибки самого файла с паролями nginx показывает другими кодами:

Что в журнале ошибокЧто видит посетительПричина
user "имя" was not found in "/etc/nginx/.htpasswd"401Такого пользователя в файле нет
user "имя": password mismatch401Неверный пароль
open() "/etc/nginx/.htpasswd" failed (2: No such file or directory)403Файла нет по указанному пути
open() "/etc/nginx/.htpasswd" failed (13: Permission denied)500Файл есть, но nginx не может его прочитать

Журнал ошибок в Ubuntu и Debian — /var/log/nginx/error.log. Если файл недоступен, дайте процессу nginx право на чтение (в Ubuntu nginx работает от пользователя www-data).

401 у API и в программах

У API 401 обычно значит, что токена нет, он просрочен или подписан не тем ключом. Смотрите заголовок WWW-Authenticate в ответе: многие сервисы пишут туда или в тело ответа, что именно не так. Если токен действующий, но прав на операцию не хватает, правильный ответ — 403.

На обычном хостинге

На хостингах с панелью закрыть каталог паролем обычно можно прямо в панели — ищите раздел о защите каталогов или доступе по паролю. Если раздела нет, спросите поддержку: на хостинге с Apache для этого используют файл .htaccess.

Источники

Сверено 6 октября 2026 года.

Что почитать дальше

Проверено и обновлено: 07.10.2026