Every time I want to generate Nginx htpasswd I forget how to do it. This is just for my reference so I don’t have to search for a solution on the Internet. Apache comes with htpasswd utility, but I strictly run Nginx these days and don’t really need Apache or any Apache related utilities on my servers.
I use PHP to generate a hashed password like this:
$ php -a
php > echo crypt('mypassword', base64_encode('mypassword'));
bX6j7x3Ep6RnU
Now add the password in your htpasswd file
echo 'myuser:bX6j7x3Ep6RnU' >> /etc/nginx/htpasswd
Finally add your password file to Nginx config:
location / {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/htpasswd;
}
Reload Nginx:
sudo service nginx reload
Thanks Tobias Sj?sten for the tip.
Marko