読者です 読者をやめる 読者になる 読者になる

tweeeetyのぶろぐ的めも

アウトプットが少なかったダメな自分をアウトプット<br>\(^o^)/

【apache】basic認証をかけるメモ 〜 .htpasswdや.htaccessについて

はじめに

htpasswd(htaccessはおまけ)の使い方を毎回調べなくて良いようにメモ。
自分の場合はapacheやnginxでbasic認証をかける際にサクっと使うのが目的です。

アジェンダ

  1. basic認証とは
  2. htpasswdコマンドで.htpasswd作成
  3. .htaccessを置いてbasic認証をかける
  4. webサーバの設定をする

1. basic認証とは

説明するまでも無いかもですがいちおう

basic認証とは

参考サイト引用

BASIC認証とは、Webサイトの閲覧に使うプロトコル「HTTP」が備える、最も基本的なユーザ認証方式。
参考 : http://e-words.jp/w/BASIC%E8%AA%8D%E8%A8%BC.html

こんな画面が出るやつですね。よく見るヤツです。 f:id:tweeeety:20150705163025p:plain f:id:tweeeety:20150705162813p:plain

どうやってかけるか

.htpasswd.htaccessというファイルを使っておこないます。
.htpasswdにユーザとパスワードを記述、
basic認証をかけたいディレクトリに.htaccessを置くことで
そのディレクトリ配下がbasic認証の対象となります。

これらのファイルの作成は簡単で .htpasswdを作成する場合であれば
後述するhttpd-tools(htpasswdコマンド)を使って1行コマンド打つ程度です。

以下それぞれの説明

.htpasswdとは
  • Basic認証に使用されるユーザ名とパスワードが記述されたファイル
  • ファイルの書式はユーザ名:パスワード
  • ファイルの記述ルールとしてパスワードは必ず符号化・暗号化する
  • パスワードの符号化・暗号化には,BASE64MD5,cript()などを使用可能
.htpasswdとは
  • Webサーバで使用できるWebサーバの動作をディレクトリ単位で制御するためのファイル

2. htpasswdコマンドで.htpasswd作成

htpasswdコマンドで.htpasswdを作成します。

※ .htpasswdを置くディレクトリに移動
$ cd /etc/httpd/conf

※ htpasswdコマンドで.htpasswd作成&ユーザ追加
※ -cコマンドで新規作成。他オプションは後述
$ sudo htpasswd -b -m -c .htpasswd hoge hogepass

※ 中身見てみる
$ cat .htpasswd
hoge:D085DemY7wQYI

※ ユーザを追加&確認
$ sudo htpasswd -b .htpasswd piyo piyopass
$ cat .htpasswd
hoge:D085DemY7wQYI
piyo:t6GHRD/miw7Ig

※ -mオプションでmd5ハッシュをかけたほうがより安全です

htpasswdのオプション
オプション 説明
-c 新しいパスワードファイルを作成します。もし、同名のパスワードファイルがすでに存在する場合は、既存の内容が削除されます。
-n どのような結果になるかのみを標準出力して終了します。パスワードファイルを変更しません(テスト実行用)。
-m パスワードをファイルに書き込む際、MD5 でハッシュします。
-d パスワードをファイルに書き込む際、CRYPT でハッシュします(デフォルト)。
-p パスワードをファイルに書き込む際、ハッシュしないで、プレーンなテキストのまま書き込みます。
-s パスワードをファイルに書き込む際、SHA でハッシュします。
-b パスワードを、対話式入力ではなくて、コマンドライン引数として指定できるようにします。

こちらを引用させていただきました。thx!
引用 : htpasswd コマンド

3. .htaccessを置いてbasic認証をかける

確認のために、公開してるwebページが置いてある場所など
アクセス可能なディレクトリに.htaccessを置きます。

普通にアクセスできる -> .htaccessを置くとbasic認証がかかる
確認のために行うので外からアクセスしてみれるページが良いですね。

$ cd 公開してるページのディレクトリ

$ vi .htaccess
---- vi作成 ----
AuthUserFile /etc/httpd/conf/.htpasswd
AuthGroupFile /dev/null
AuthName "input your id and passwd"
AuthType Basic
require hoge piyo
----------------

4. webサーバの設定をする

$ 
---- vi編集 ----
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   Options FileInfo AuthConfig Limit
#
    AllowOverride None
    ↓ 編集
    AllowOverride All

あとはアクセスしてみて最初の画像のようなダイアログが出れば終わりです。

おわり

basic認証は簡易的な認証でじゃっかん不安はあるものの、
とはいえ急遽必要な場合なんかは無いよりはあったほうが良いですよね!

操作でやることはほとんどないんだけど、文章で書くと大変です。。。w