個人用に作成したのですが、 DockerHub を軽く検索しても見つからなかったので共有します。
(※ 筆者のセキュリティリテラシーは「使うモジュールは最新バージョンにしとくか」程度です。 使用は自己責任でお願いします。 Build される Dockerfile はここにあります)
docker pull kamuiroeru/nginx-digest-auth-with-docker:latest
特徴
- Digest 認証ができる nginx イメージ
- 2022/09/07 現在で latest or stableのバージョンでビルド
- nginx:
1.23.1
- openssl:
3.0.5
- zlib:
1.2.12
- nginx:
- イメージの容量が 30MB 程度と軽量 (本家 nginx と同程度)
使い方
https://github.com/kamuiroeru/nginx-digest-auth-with-docker にサンプルファイル置いてます。
# 1. サンプルファイルがあるリポジトリをコピー
git clone https://github.com/kamuiroeru/nginx-digest-auth-with-docker
cd nginx-digest-auth-with-docker
# 2. .htdigest ファイルを作成
touch .htdigest
htdigest .htdigest "secret_area" username
# Adding user username in realm secret_area
# New password: [パスワードを入力]
# Re-type new password: [パスワードを再入力]
# 3. start with docker-compose
docker-compose up -d
# 4. access to localhost:8888
作ったモチベーション
- 色々なサービスのリバースプロキシとして nginx をよく使うのだが、公開ページして簡易的に認証させたい
- でも Basic 認証はパスワードがモロバレになるので Digest 認証を使いたい
- nginx で Digest 認証するにはビルド必須。結構めんどくさそう
- docker image あるやろ -> 2つだけ見つかった(1つは不動、もう一つは image 容量 が 300MB と重い)
- よっしゃ作ったろ。マルチステートビルドで容量も削減しよ
参考