HTTPS authentication in nginx
In order not to forget again how to setup http authentication in nginx here is a reminder.
For HTTPS follow these steps:
$ sudo -s # cd /etc/nginx # openssl req -new -x509 -nodes -out server.crt -keyout server.key
and add these lines to your server instance:
server {
listen 443;
ssl on;
ssl_certificate /etc/nginx/server.crt;
ssl_certificate_key /etc/nginx/server.key;
...
To setup basic authentication, add these lines to the same file:
location / {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/htpasswd;
# you might also want to deny access based on IP here
#allow <ip-address>;
#deny all;
...
Finally, to generate /etc/nginx/htpasswd, use this one-liner:
echo -e "your-username:`perl -le 'print crypt("your-password","salt")'`" > /etc/nginx/htpasswd
Restart nginx and Bob's your uncle!