特定のパスのみBASIC認証をかけないようにする(nginx編)
はじめに
BASIC認証を特定のパスのみ除外する設定をしたのでメモをしておく。
前回はApache編だったが、今回のWebサーバはnginxの想定で記載する。
環境
|
|
準備
構築するファイル構成
|
|
.htpasswdファイルの作成
|
|
適当に ID/PASS を設定する。
今回は、 user / user とした。
|
|
default.confの作成
|
|
public-htmlの作成
index.html
|
|
.well-known/pki-validation/test.txt
|
|
キモとなる部分
default.conf
に以下の設定を追加している。
|
|
locationディレクティブに/.well-known/pki-validation/
を追加し、
auth_basic off;
でBASIC認証を無効にしている。allow all;
で全てのアクセスを許可している。
これで特定のパスに対してBASIC認証を無効にすることができる。
というわけで準備ができたので構築をして試してみる。
構築
今回もローカル環境で構築できるようにDockerを利用する。
compose.yml
|
|
コンテナの起動
|
|
テスト
http://localhost:8080
上記はBASIC認証がかかっていることを確認する。
http://localhost:8080/.well-known/pki-validation/test.txt
上記はBASIC認証がかかっていないことを確認する。
参考
- nginx | DockerHub
https://hub.docker.com/_/nginx
おわりに
今回は、nginxの設定で特定のパスに対してのBASIC認証を無効にする方法を試した。
Apache編と同様に、nginxでも特定のパスに対してBASIC認証を無効にすることができる。
前回と同じく、SSL証明書の認証ファイルを配置する場合でBASIC認証を一部のみ無効にしたい場合に有用な設定となっている。