Серверные утилиты Apache HTTP
htpasswd – самая популярная утилита командной строки для управления пользовательскими файлами для базовой аутентификации.
Я буду использовать версию MD5, модифицированную для Apache, для генерации пароля (который используется по умолчанию), так как он также поддерживается утилитами openssl.
Установим пакет apache2-utils.
$ sudo apt install apache2-utils
Создадим пустой файл для хранения информации об учетной записи HTTP.
$ sudo touch /etc/nginx/snippets/statistics.htpasswd
Вы можете использовать htpasswd, чтобы создать файл для хранения информации об учетной записи HTTP, но я против, так как это решение подвержено ошибкам.
Отобразим зашифрованный password для пользователя username на стандартном выводе.
$ echo "password" | htpasswd -i -n username username:$apr1$Qzu3mckE$xiu7cvijFfWTqha/AEQhE1
Добавьте или обновите информацию об учетной записи HTTP.
$ echo "stats" | sudo htpasswd -i /etc/nginx/snippets/statistics.htpasswd stats Adding password for user stats
$ echo "stats-" | sudo htpasswd -i /etc/nginx/snippets/statistics.htpasswd stats Updating password for user stats
Проверим пароль для конкретного пользователя HTTP.
$ echo "stats-" | sudo htpasswd -i -v /etc/nginx/snippets/statistics.htpasswd stats Password for user stats correct.
$ echo "stats" | sudo htpasswd -i -v /etc/nginx/snippets/statistics.htpasswd stats password verification failed
Удалить конкретного пользователя HTTP.
$ sudo htpasswd -D /etc/nginx/snippets/statistics.htpasswd stats Deleting password for user stats
$ sudo htpasswd -D /etc/nginx/snippets/statistics.htpasswd stats User stats not found
Переписать информацию об учетной записи HTTP. В итоге вы получите одну учетную запись HTTP.
$ echo "stats" | sudo htpasswd -i -c /etc/nginx/snippets/statistics.htpasswd stats Adding password for user stats
Я повторюсь. Опция create действительно подвержена ошибкам.
Кстати, ранее мы рассматривали этот метод под Kubernetes:
и также для NetDATA:
Утилиты OpenSSL
Вам не нужно использовать команду htpasswd, так как вы можете создать образец пароля для базовой аутентификации с использованием стандартных утилит openssl.
$ echo "password" | openssl passwd -apr1 -stdin $apr1$r8mlIRyv$B7xsBRVCUyMnCjfvkR/u./
$ echo "username:$(echo password | openssl passwd --salt r8mlIRyv -apr1 -stdin)" username:$apr1$r8mlIRyv$B7xsBRVCUyMnCjfvkR/u./
$ echo "stats:$(echo stats | openssl passwd -apr1 -stdin)" stats:$apr1$iLpPMCo9$j1zviL0K9tL6N7UtBvwcT.
Вам нужно самостоятельно управлять информацией об учетной записи HTTP при использовании openssl.