NGINX で Basic 認証をする

NGINX でBasic 認証をするときの設定。
セキュリティはそれほど高くは無いですが、簡単な内容を関係者だけに公開したい場合に使えます。
該当のディレクトリにアクセスすると、ブラウザで認証のポップアップが表示されます。

htpasswd ファイル作成

認証に使用するhtpasswd ファイルにユーザ名とパスワードを設定する。
コマンドを使用してファイルの生成をします。ファイル名は隠しファイルとするので「.」を先頭につけてください。
パスワードの入力を求められるので、パスワードを入力したら認証ファイルは生成される。

sudo htpasswd -c /etc/nginx/.<ファイル名> <ユーザ名>

NGINX の設定

Basic認証をしたいディレクトリ単位で設定を行う。
以下の例では、

server{
    listen       443 ssl;
    server_name  www.a.com;

    location /abc/ {
        auth_basic_user_file /etc/nginx/htpasswd/.pass1;
    }

    location /xyz/ {
        auth_basic_user_file /etc/nginx/htpasswd/.pass2;
    }
}

LINE で URL を送るときの注意

LINEでURLを送ると、LINE内部のブラウザが優先的に利用される。Basic認証等ができなかったり、動画の再生に制限が出たりする。
その時は、URLに ?openExternalBrowser=1 を追加して送る。
<サンプル>

https://www.knaga.click/xxx/index.html?openExternalBrowser=1

コメント

タイトルとURLをコピーしました