サーバーのディレクトリやファイルをIDとパスワードで保護したい時に、basic認証を利用します。
basic認証を利用することで、「知り合いだけに見せたい」「自分だけがみれるようにしたい」という具合にIDとパスワードを知っていれば、設定したIDとパスワードを利用してサーバーにあがっているデータを見れるようになります。
レンタルサーバーの管理画面から設定できれば、それを利用すると早いですが、自分で作れるようにします。
目次
ファイルは.htaccessと.htpasswd
- .htaccessファイルを認証したいフォルダに設置する
- .htpasswdファイルをサーバーからみれないところに設置する
認証したいURLが「https://tsuzu9.jp/cms/directory/」の場合、.htaccessファイルは「documentroot/directory/」にアップロードします。
フォルダにbasic認証をかける
フォルダ単位で認証をかける場合は、.htaccessに以下の記述を挿入します。
AuthType Basic
AuthName "Input your ID and Password."
AuthUserFile /home/ドメイン名/htpasswd/.htpasswd #サーバーによってフォルダのパスを変更。httpでアクセスできないところが望ましい。
require valid-user
WordPressのログインのファイルにbasic認証をかける
ファイル単位で認証をかける場合は、.htaccessに<Files ファイル名></Files>で囲んで挿入すると、該当ファイルのbasic認証ができました。
<Files wp-login.php>
AuthType Basic
AuthName "Input your ID and Password."
AuthUserFile /home/ドメイン名/htpasswd/.htpasswd #サーバーによってフォルダのパスを変更。httpでアクセスできないところが望ましい。
require valid-user
</Files>
.htpasswdファイル
.htpasswdの方はできればhttpでアクセスできるところにはアップロードしない方がいいようです。
Xserverだと、htpasswdフォルダがあるのでそこにアップロードするとよさそうです。
以下は.htpasswdのファイルの中身を作成してくれるサイトを利用するか、Macのterminalで生成する方法です。
サイトのサービスで.htpasswdを作成する
IDとPasswordの欄に任意の文字列をいれ生成ボタンをクリックすると、
少し下の方に.htpasswdの記述を作成してくれます。
これをコピーしてファイルに保存してサーバーにアップロードします。
Macのterminalで作成する
$ cd 作成したい場所に移動
$ sudo htpasswd -b -m -c .htpasswd ユーザ名 パスワード
それぞれのオプションは
-c 新しいパスワードファイルを作成。同じファイルがあった場合は既存の内容が削除される。
-m パスワードをファイルに書き込む際の暗号化(MD5ハッシュ)
-b パスワードを、対話形式ではなく、コマンドラインの引数として指定。
といった意味です。
Macのファインダーでは「.」ファイル名の先頭にドットがつくファイルは非表示になっています。確認する場合は、⌘+shift+.(コマンド、シフト、ピリオド)で表示できるようになります。
他にもオプション「n」を作成するとterminalの中で作成できます。
$ htpasswd -n id(idはbasic認証のid)
New password: (basic認証に設定するパスワードを入力)
Re-type new password: (パスワード再入力)
id:$apr1$0zPgN0Xh$R7KE2cIezQe8UH7aRbvkq/(terminal内に表示)
まとめ
認証ファイルをつくってアップするとアクセス制限をかけたサイトにできるので、サイトの閲覧者を制限できるのでグループや家族間などクローズドにしておきたい時に便利な機能です。
.htaccessは記述を間違えるとサイトがエラーになってしまうこともあるので、バックアップをとったり、間違ってもすぐにもどせるように準備をしておくと安心して作業ができます。
コメント