Dockerのnginx-proxyコンテナでBasic認証を追加する
Dockerのnginx-proxyコンテナでLet's Encryptに対応したコンテナを構築している際に、ドメインにBasic認証を追加する方法を確認したのでまとめました。設定フォルダに入れるだけでできるのでとても簡単です。
公開日:2018年9月6日
Githubレポジトリにやり方が書いてあります
GitHub - jwilder/nginx-proxy: Automated nginx proxy for Docker containers using docker-gen
Basic Authentication Support
In order to be able to secure your virtual host, you have to create a file named as its equivalent VIRTUAL_HOST variable on directory /etc/nginx/htpasswd/$VIRTUAL_HOST
htpasswdディレクトリの中に、VIRTUAL_HOST=つまりドメイン名のファイル名で認証ファイルをおけばいいってことですね。
htpasswdファイルを作成する
apache2-utilsが入っていればOKです。CentOSならhttpd-toolsですね。
htpasswdのディレクトリで、コマンドを実行します。
htpasswd -c -b ドメイン名 ユーザー名 パスワード
ホストで生成ができない場合は、ジェネレータで生成してホストにアップロードをしてもOKです。
あとは、対象のコンテナを再起動するだけ
設定は、コンテナが起動したタイミングで読み込まれるので、すでに起動している場合は再起動します。
docker-composeでアップしている場合は、
sudo docker-compose restart
で反映されます。
Digest認証よりかはセキュリティのレベルは低いですが、公開したくないWebサイトに認証をかけたい時にサクッとできるので非常に便利です。
新着ノート
-
Gitlabの2段階認証下でコンテナレジストリにPushする方法
gitlab
公開日:2020年12月23日
-
HUGO
公開日:2020年4月27日
新着コード
-
cURLでCloudflare APIでキャッシュを削除する
cloudflare
公開日:2020年5月1日
-
iOS Safariでselectを含む要素にoverflow-y:scrollすると横にスクロールする時の対応
iOS
公開日:2020年4月15日