WordPress

.htaccessでWordPressの管理画面にBasic(ベーシック)認証を設定

wordpress-logo
o_wani
この記事は作成から8年以上経過しているため、内容が古くなっている可能性があります。

WordPressで作成されているサイトで、初期設定の状態のままならドメインの後ろに
/wp-adminでアクセスしたときWordPressの管理画面へのログイン画面が表示されてしまいます。

誰でもアクセスできる状況は良くないので、ベーシック認証やアクセス制限をかける方法を記載します。今回はいずれもドキュメントルート直下の.htaccessを使って設定を行います。

今回の環境は

  • webサーバはapache
  • webサーバで.htaccessの使用が許可されていること
  • OSは Linux(Amazon Linux)

を前提としています。

1. Basic認証用ファイルの準備

以下のコマンドで認証に利用するユーザとPWのファイルを新規作成します。

1.$ htpasswd -c /var/www/secure/.htpasswd username
2.New password:
3.Re-type new password:
4.Adding password for user username

コマンドが使えない場合は.htpasswdファイル生成(作成)で作成可能。

2 .htaccessへの記載

.htaccessに以下を追記。

1.<Files wp-login.php>
2.AuthName "Please input ID & PW"
3.AuthType Basic
4.AuthUserFile /var/www/secure/.htpasswd
5.Require valid-user
6.</Files>

AuthUserFileに認証用ファイルを指定します。
任意の場所でOKですが、公開ディレクトリ以外の場所に設置します。

3. Webサーバ再起動

修正を反映するためwebサーバを再起動します。

1.$ sudo /etc/init.d/httpd restart

これでBasic認証が適用されました。
よりセキュリティ的にベターな設定として、アクセス制限があります。

アクセス制限

.htaccessに以下を追記。

1.<Files wp-login.php>
2.order deny,allow
3.deny from all
4.allow from XX.XX.XX.XX
5.</Files>

XX.XX.XX.XXは自分のIPアドレス。

いつもアクセス元が決まっていて、固定IPの場合は、アクセス制限も
併用すると良いかと思います。

まとめ

併用すると.htaccessはこんな感じ。

1.<Files wp-login.php>
2.order deny,allow
3.deny from all
4.allow from XX.XX.XX.XX
5.
6.AuthName "Please input ID & PW"
7.AuthType Basic
8.AuthUserFile /var/www/secure/.htpasswd
9.Require valid-user
10.</Files>

アクセス制限は、WordPressの管理画面へのアクセスができるIPアドレスを固定するので、
スマホやカフェで作業したりする人は、IPアドレスが変わるので、Basic(ベーシック)認証だけでOKですね。

今回は、WordPressの管理画面へのアクセスまわりのセキュリティでしたが、
管理画面へのログイン時のセキュリティを強化するGoogleの2段階認証を用いたものもなどありますのでコスパが良いものはまた記載したいと思います。

ちなみに今回のBasic認証を簡単に設定できるWordPressのプラグイン「WP Admin Basic Auth」があります。こちらを使用するともっと簡単に設定できそうですね。

WordPressだとやりたいことをまずプラグインで探してみるとたいてい見つかるかもしれないですね。

STAFF
o_wani
o_wani
スタッフ
大学卒業後、15年間WEB業界で働く。現在はマネジメントに従事していますが、ChatGPTの登場に触発され、このブログを再開。AIをパートナーに、自分で手を動かして実装する楽しさと喜びを再発見中。時代が変わりつつある中でも、陳腐化しない情報発信も目指しています。
記事URLをコピーしました