0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

nginxでBasic認証を設定する

Last updated at Posted at 2020-12-22

概要

Webアプリ開発のための環境構築を以下の環境で行っています。
・OS:CentOS
・アプリケーションサーバ:django
・Nginx:Webサーバ
・データベース:MySQL

誰でもアクセスできる状態はまずいな、ということでBasic認証をかけていきます。
参考にさせていただいた記事は以下です。
https://qiita.com/You_name_is_YU/items/e8db11eaa10067556e52

Basic認証とは

Web上で利用できる認証システムです。
Basic認証が設定されているページへ行くと、IDとパスワードが求められるポップアップが現れます。

セキュリティレベル

「.htaccess」というものを利用して設定する、非常に簡単な認証機能です。
そのため、セキュリティレベルは低いです。
あくまでも、取り急ぎ行う認証であることは把握しておきましょう。

Basic認証の設定

nginxコンテナにアクセス

まず、Docker内のnginxコンテナに入ります。
以下のコマンドで入ることができます。

# docker-compose exec {コンテナ名} {コマンド}

コンテナ名はdocker-compose.ymlで確認できます。
自分の場合は以下です。

# docker-compose exec nginx bash

Badic認証の設定

本題のBasic認証の設定を行っていきます。
Basic認証を設定するためには、htpasswdコマンドを実行し、.htpasswdファイルを作成します。
そこでまず、コマンドをインストールします。

# yum -y install httpd-tools
bash: yum: command not found

Oh...yumが入っていない。
そうですね、コンテナ内ではyumがインストールされていませんでした。

一方でaptが使えました。
この辺はRedhut系なのかなど、環境によりけりですね。

# apt -v
apt 1.4.8 (amd64)

とりあえずupdateをかけます。

# apt update

aptでもパッケージのインストールはできますが、yumの方がいい場合は以下で行けます。

# apt install yum

Basic認証の準備

# apt install apache2-utils
# htpasswd -c /etc/nginx/.htpasswd [username]
# vim /etc/nginx/nginx.conf

以下を追記しました。

location / {
        auth_basic "Restricted";                   # 認証時に表示されるメッセージ
        auth_basic_user_file /etc/nginx/.htpasswd; # .htpasswdファイルのパス
    }

nginxを再起動して。

# service nginx restart

webページにアクセスすると、basic認証が確認できました。

image.png

参照記事

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?