WebサーバにAapcheを利用していて、Basic認証かける基本的な手順、やり方、方法。
やり方
以下、全体の流れ。
- .htapasswdを用意する
- .htaccessを用意する
- .hatpasswd と、.htaaccessを配置する
.htaccessで、認証の記述が許可されている(httpd.confなどで、AllowOverride AuthConfig またはAllが指定されている)事が前提。レンタルサーバなら大抵の場合、問題ないはず。
ひとつずつ見ていく。
.htapasswdを用意する
- Basic認証にかけたい、IDとパスワードを決める
- .htpasswdファイルを作成する。作成手順はこちら
- Webサービス使って作成してもよい。自己責任でヨロ
.htaccessを用意する
以下の記述が含まれた.htaccessを用意する。
# ベーシック認証ココから↓↓
AuthType Basic
AuthGroupFile /dev/null
AuthName "Please Enter Your Password."
AuthUserFile /サーバーOSでのフルパス/.htpasswd
require valid-user
# ベーシック認証ココまで↑↑
AuthUserFile では、.htapasswdのファイルPathを記述するが、これは、WebサーバのDocumentRootを起点にするのではなく、サーバーOSでのフルPathを記述する。
.htpasswdは、念のため、DocumentRootより上位の階層に設置した方がいいかも。
Apacheの設定により、「.ht」から始まるファイルはアクセス拒否されているはずだが、念のため。
.htaccess 配置場所の例)
/home/hoge/.htaccess
(/home/hoge/public_html/ がDocumentRootだった場合。)
.htpasswd と、.htaccessを配置する
Basic認証をかけたいディレクトリに.htaccessを、
.htaccess内の「AuthUserFile」に記述した場所に.htpasswdを配置する。
レンタルサーバの場合で、.htpasswdのフルパスを調べる
以下のやり方で調べられるよ。
わからなくなったディレクトリに下記のコードを記述したphpを設置して、
そのディレクトリのURLをブラウザで開くとフルパスが表示されます。<?php echo __FILE__; ?>
https://qiita.com/BEMU/items/7dc3fee4d5cdaf5c4fa8
フルパスの調べ方 - Qiita.htaccessの置き場所をフルパスで書こうとしたら、フルパスの情報がわかならかったので、やり方を調べてみました。phpを使って調べるという記事があったので、参考にやってみました。AuthU…
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fcdn.qiita.com%2Fassets%2Fpublic%2Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png?ixlib=rb-4.0.0&w=1200&mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9JUUzJTgzJTk1JUUzJTgzJUFCJUUzJTgzJTkxJUUzJTgyJUI5JUUzJTgxJUFFJUU4JUFBJUJGJUUzJTgxJUI5JUU2JTk2JUI5JnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz04OTVkN2EwMGIyNmRlYzIyZTMwNjA1ODhjYTRhZjkyYQ&mark-x=142&mark-y=112&blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwQkVNVSZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9MDI2MGM5ZDQ0ODU4Y2E3Mjg4OWYyMTYwYjI2YWViMDc&blend-x=142&blend-y=491&blend-mode=normal&s=008aec81f9fe6c487689a1f630cfd01e)
必ず、設定したアカウント以外でログインできないことを確認しましょうね
.htpasswdのPathを間違えて設定すると、ID/PWの中身をデタラメな文字列にしたり、空白のままにしたりしても認証が通ってしまう場合があった。
設定したID/PW以外では認証が通らないことを必ず確認すること。
https(SSL化)できずにhttp 環境にしかできない場合はDigest認証を設定することを検討する。
SSL化(暗号化)していないhttp通信だと、盗聴されるおそればありますのでね、Basic認証でなくDigest認証の導入などを検討しましょう。
Digest認証はapacheのCoreの設定ファイル(httpd.confとか)をいじる環境でないと設定することは厳しいと思いますが(レンサバなどでは厳しい)。
https化してくれるCDNなどを間に噛ますだけでもhttp通信だけにするよりよいかとおもいます。
参考にしたサイト
あざした。
関連:WordPressダッシュボードにBasic認証かける
WordPressダッシュボードにBasic認証かけるときは、wp-login.phpを対象にする
コメント