Apache

WordPress管理画面のログインページにベーシック認証を掛ける方法【セキュリティ対策】

WordPress記事投稿や更新には管理画面のログインページからログインしますが、ログインページのURLはWordPressを利用したことがある人にとっては推測できます。「ユーザー名」と「パスワード」がわからないとログインできませんが、悪質なユーザーからブルートフォースアタック(手あたり次第「ユーザー名」「パスワード」を入力してログインを試す手法)を掛けられる可能性もありセキュリティ対策を行いたいところです。
今回はWordPress管理画面のログインページにベーシック認証を掛ける方法をご紹介します。

ベーシック認証ログイン用.htpasswdファイルを用意

ベーシック認証ではログインするための「ユーザー名」「パスワード」を記載した.htpasswdファイルが必要です。パスワードは暗号化(MD5)で生成する必要があり、htpasswdファイル生成サービスを利用しました。サービスは色々ありますが今回は以下を使用しました。

htpasswdジェネレータ

「ユーザ名」「パスワード」を入力し「暗号化」をクリックすると「右の文字列を.htpasswdファイルにコピー&ペーストしてください」部分に暗号化されたパスワードでベーシック認証ログイン用の「ユーザ名」「パスワード」が生成されます。

.htpasswdファイル例

<Files wp-login.php>
ユーザー名:暗号化されたパスワード
</Files>

WordPressログイン画面用のベーシック認証を.htaccessに追記

WordPressサイトではデフォルトで.htaccessファイルがありますが、.htaccessファイルに以下を追記します。
※念のため編集前の.htaccessファイルのバックアップをとってから行って下さい。

.htaccessファイル例

<Files wp-login.php>
AuthUserFile /***サーバーのパスを記載***/.htpasswd
AuthGroupfile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user
</Files>

WordPress管理画面のログインページURLに「wp-login.php」が含まれるため、URLに「wp-login.php」がある場合ベーシック認証を掛ける記述となってます。
「/***サーバーのパスを記載***/」にはホスティングサーバーの.htpasswdファイルが置いてある場所(パス)を記述します。

WordPressログインページのベーシック認証イメージ

WordPress管理画面のログインページ(例: https://XXXXXXX/wp-login.php )にアクセスすると以下の様にベーシック認証(「ユーザー名」「パスワード」入力)が表示されます。

ベーシック認証イメージ

 

.htpasswdファイル作成時の「ユーザー名」「パスワード」入力するとWordPressログインページにアクセスできます。

 
※流用される場合は自己責任でお願いします。