.htpasswd生成 ベーシック認証のパスワードファイル作成

ベーシック認証用 .htpasswd生成

.htaccessによる認証。ベーシック認証のパスワードファイルを作成します。
出力された文字列を.htpasswdファイルに貼り付けて使用します。

ユーザー名
パスワード
手軽にウェブサイトに閲覧権限をつけたいときによく利用するのがBasic認証。
公開開始日まで一時的にサイトを見れないようにしたい場合、かつ、関係者だけには見れるようにしたい。そんな時などに便利です。
.htaccess に既定の記述をして、.htpasswd にこのサイトで作成する文字列を記述するだけで実現できます。
.htpasswdの内容としては以下のようなものです。
admin:42ZhqOgeFPmuA
「ユーザー名:パスワード」という書式になっており、この場合のユーザー名は「admin」、パスワードは「pass」です。
passというパスワードをハッシュ化することで42ZhqOgeFPmuAという文字列が得られています。
ハッシュ化文字列は、phpのcrypt関数で簡単に求めることが可能です。
<?php print crypt('pass','aa'); ?>
'aa'の部分は任意の2文字の文字列を与えます。

.htpasswd内に複数のアカウントを記述することも可能です。
yamada:8tiYC3FVuPLxQ
suzuki:a7t1wganOp6/E
satou:kmzk6Qqs.roh2
本サイトでは、手軽にこの記述を求めることが出来ます。
.htaccessには以下の様に記述します。
AuthUserFile /home/www/sitename/.htpasswd
AuthGroupFile /dev/null
AuthName "admin only"
AuthType Basic
require valid-user
AuthUserFileの部分には、サーバーでのパスを記載します。不明な場合は以下の記述で確認できます。
<?php print $_SERVER['DOCUMENT_ROOT']; ?>
"admin only" は任意に記述します。日本語も使えますが半角英数が無難です。
Windowsではドットで始まるファイル名は作成できない為、htaccess.txt htpasswd.txt などで作成して、ウェブサーバーへアップロード後にリネームします。
また、.htaccess と .htpasswd はセキュリティ上、不可視にしておくことが望ましいので、以下の記述を.htaccess内に併記することをお勧めします。
<Files ~ "^\.(htpasswd|htaccess)$">
	deny from all
</Files>
以下の様になります。
# 半角シャープから始まる行はコメントになります。
AuthUserFile /home/www/sitename/.htpasswd
AuthGroupFile /dev/null
AuthName "admin only"
AuthType Basic
require valid-user
# この行はコメント
<Files ~ "^\.(htpasswd|htaccess)$">
	deny from all
</Files>
#
# これらの行はコメント
#
この記事は2013年11月時点のものです。
このサイトについてのお問い合わせはエーオーシステムまでお願いいたします。
ご使用上の過失の有無を問わず、本プログラムの運用において発生した損害に対するいかなる請求があったとしても、その責任を負うものではありません。
このサイトでお気付きの点がございましたら
ご連絡いただけますと幸いです。
Eメール(任意)
送信内容
 
このサイトでお気付きの点がございましたら
ご連絡いただけますと幸いです。
 
Eメール(任意)
送信内容
 
このサイトでお気付きの点がございましたら
ご連絡いただけますと幸いです。
 
Eメール(任意)
送信内容
 
top of page