Часто люди ищут информацию как поставить пароль на сайт, например сайт предназначен для разработки и дублирует основной что бы поисковики не индексировали его, ну и от лишних глаз. В этой статье я покажу вам простую, но эффективную технику, как установить пароль на сайт при загрузке, я использую Nginx в качестве веб-сервера.
Шаг 1: Создание пользователя и пароля
1. Для защиты паролем нашего веб-каталога, нам нужно будет создать файл, который будет содержать наше зашифрованное имя пользователя и пароль.
Если в системе установлена утилита "htpasswd", вы можете использовать эту команду для создания файла паролей:
htpasswd -c /path/to/file/.htpasswd username
При запуске этой команды вам будет предложено установить пароль для вышеупомянутого пользователя, после чего файл .htpasswd будет создан в указанном каталоге.
2. Если у вас не установлен этот инструмент, вы можете создать файл .htpasswd вручную. Файл должен иметь следующий синтаксис:
username:encrypted-password:comment
Имя пользователя, которое вы будете использовать зависит от вас, выбрать все, что вам нравится.
Более важной частью является то, как вы будете генерировать пароль для этого пользователя.
Шаг 2: Создайте зашифрованный пароль
3. Для создания пароля используйте Perl интегрированную функцию «crypt»
Вот пример этой команды:
perl -le 'print crypt("your-password", "salt-hash")'
Пример из реальной жизни:
perl -le 'print crypt("#12Dfsaa$fa", "1xzcq")'
Теперь откройте файл и поместите имя пользователя и сгенерированное в строке его, отделенный точка с запятой.
Шаг 3: Обновление конфигурации Nginx
4. Теперь откройте и отредактировать файл конфигурации Nginx, связанный с сайтом, над который вы работаете. В нашем случае мы будем использовать файл по умолчанию по:
# nano /etc/nginx/conf.d/default.conf [For CentOS based systems]
ИЛИ
# nano /etc/nginx/nginx.conf [For CentOS based systems]
ИЛИ
# nano /etc/nginx/sites-enabled/default [For Debian based systems]
В нашем примере мы защитим паролем корень каталога для nginx, который: ./usr/share/nginx/html
5. Теперь добавьте следующие две строки раздела под путь, который вы хотите защитить.
auth_basic "Administrator Login";
auth_basic_user_file /home/tecmint/.htpasswd;
Теперь сохраните файл и перезапустьте Nginx с помощью:
# systemctl restart nginx
ИЛИ # service nginx restart
Ну вот! Ваш главный веб-каталог теперь защищен. Если вы хотите удалить защиту паролем на сайте, просто удалите две строки, которые вы только что добавили в файл .htpasswd или используйте следующую команду, чтобы удалить добавленного пользователя из файла пароля.
htpasswd -D /path/to/file/.htpasswd username