nginxでベーシック認証
nginxで簡単にベーシック認証を掛ける事ができるという事で実践してみました。 色々調べてみるとapacheがインストールされている場合は「htpasswd」それ以外の場合は「openssl」コマンドで.htpaswdファイルを生成できる模様
htpasswd
htpasswd -c /var/www/.htpasswd testuser
New password:
Re-type new password:
Adding password for user testuser
openssl
echo "testuser:`openssl passwd -apr1 testpass`" > /var/www/.htpasswd
-apr1はapache変数らしい。アルゴリズムの一種だそう
-saltなどもオプションとして記述する事ができるみたい
echo "testuser:`openssl passwd -apr1 -salt xxxxxxx testpass`" > /var/www/.htpasswd
opensslは正直ほとんどよく分からない状態なのでまた別途勉強しないといけないかな。。。
nginx.conf
confの設定は以下追加するだけ
locationごとに設定もできるので管理画面だけ認証掛けるという事も楽に設定できます
location / {
auth_basic "Tool";
auth_basic_user_file "/var/www/.htpasswd";
}
再起動
/etc/init.d/nginx restart
どっちの方法でも無事認証ダイアログが出ました。
ログインするとユーザー名がアクセスログに残るのも確認。
とりあえずとても簡単、リバースプロキシとかも割と簡単に設定できたし。
これはまた別の機会にでも試してみて残す予定