Ошибка 401 Unauthorized: что значит и как исправить
401 Unauthorized — сервер не выполнил запрос, потому что в нём нет действующих учётных данных: логина и пароля, токена или ключа. Если вы их вводили, значит, сервер их не принял. Название кода путает: речь не о правах, а о том, что сервер не знает, кто вы. Когда сервер знает, но не пускает, он отвечает 403.
Содержание 9
Что означает код 401
По стандарту HTTP сервер отвечает 401, когда в запросе нет подходящих учётных данных. Вместе с кодом он обязан прислать заголовок WWW-Authenticate — в нём сказано, каким способом входить: например, Basic (логин и пароль) или Bearer (токен). Увидев такой ответ, браузер показывает окно входа или программа повторяет запрос с данными для входа.
Если учётные данные в запросе были, 401 значит, что сервер их отклонил: неверный пароль, просроченный или чужой токен.
401 или 403
| 401 Unauthorized | 403 Forbidden | |
|---|---|---|
| Что сервер знает о вас | Ничего: вы не вошли или вход не удался | Знает или ему это не важно |
| Поможет ли вход | Да, с правильными данными | Нет: этим данным доступ не положен |
| Что прислать в ответ | Обязателен заголовок WWW-Authenticate | Можно объяснить причину в тексте ответа |
Если вы посетитель
- Проверьте логин и пароль: раскладку, Caps Lock, лишний пробел при копировании.
- Если окно входа не появляется, а сразу открывается страница 401, — браузер мог запомнить неверные данные. Откройте адрес в режиме инкогнито: там окно появится снова.
- Если 401 появляется в приложении или при обращении к API, получите новый токен или ключ: у старого мог закончиться срок.
- Если вы не знаете пароля, значит, раздел закрыт не для вас. Узнать его можно только у владельца сайта.
Как закрыть раздел паролем в 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 mismatch | 401 | Неверный пароль |
| 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.
Источники
- RFC 9110, раздел 15.5.2 — определение кода 401 и заголовок WWW-Authenticate.
- Документация nginx: модуль ngx_http_auth_basic_module — директивы и формат файла паролей.
- Исходный код модуля auth_basic в nginx — какие коды отдаются при ошибках файла паролей.
Сверено 6 октября 2026 года.
Что почитать дальше
- Ошибка 403 Forbidden — когда сервер знает, кто вы, но не пускает.
- Коды ответа HTTP — полный список с расшифровкой.
- Бесплатный SSL-сертификат — без HTTPS пароль уходит в открытом виде.
- Как подключиться к VPS по SSH — чтобы создать файл паролей на сервере.
Проверено и обновлено: 07.10.2026