WordPressのセキュリティ対策としてログイン画面にプラグインなしでBasic認証を設定する方法を教えてほしいです。
こういった悩みにお答えます。
先にお伝えしておきます。
Basic認証の設定に必要となる「.htpasswd」の作成・編集や「.htaccess」の編集は全てエックスサーバーのファイルマネージャから行っています。
しかし、以下のFTPソフトを使うことで同じことはできますので参考までに下記に記事を貼っておきます。
本記事で解決できること
- Basic認証に必要な「ユーザー名」と「パスワード」を生成するツールが手に入る。
- Basic認証の設定に必要な「.htpasswd」の作成方法、またそのファイル内に書き込むハッシュ化パスワードを生成するツールが手に入る。
- Basic認証の設定に必要なコードおよびそのコードを「.htaccess」に書き込む場所が分かる。
是非、最後までご覧ください。
WordPressのログイン画面にBasic認証を設定するために必要な「.htpasswd」を用意します。
Basic認証に必要な「ユーザー名」と「パスワード」を決めます。
普通はアドレスバーに「サイトドメイン/wp-login.php」と入力すると下記のログイン画面に移動します。
しかし、Basic認証を設定することで、下記の画面が表示されます。
ここで「ユーザー名」と「パスワード」を入力することでログイン画面に移れます。
そのために必要となる「ユーザー名」と「パスワード」を用意します。
僕は下記のパスワード生成を使用しました。 ※使い慣れたツールがあればそちらでも構いません。
パスワード生成
下記画像を「ユーザー名」と「パスワード」を決める参考にお役立て下さい。
ユーザー名
パスワード
「ユーザー名」と「パスワード」を忘れるとBasic認証を解除できなくなりますので忘れないようにしましょう!
次に「.htpasswd」に必要なハッシュ化パスワードを作成します。
僕は、下記の「htpasswd 作成」を使用しました。 ※こちらも使い慣れたツールがあればそちらで構いません。
「htpasswd 作成」にアクセスします。
ハッシュ化パスワードの生成手順です。
- 手順①:ユーザー名1に生成した「ユーザー名」を入力します。
- 手順②:パスワード1に生成した「パスワード」を入力します。
- 手順③:「生成する」をクリックします。
- 手順④:「ハッシュ化パスワード」が生成されます。
※この後で作成する「.htpasswd」ファイルにコピペしますので画面は閉じずにしておきます。
「.htpasswd」を作成してハッシュ化パスワードをコピペします。
エックスサーバーの公式サイトにアクセスします。
トップページから、「ログイン」>「ファイルマネージャ」を選択します。
ファイルマネージャにログインします。
ファイルマネージャにログインしました。
ここから「wp-login.php」ファイルがある場所まで移動します。
「(Basc認証を設定したい)サイトドメイン」>「public_html」と移動します。
「wp-login.php」がある「public_html」フォルダまで移動しました。
ここに「.htpasswd」を作成して、ファイル内に先ほど生成したハッシュ化パスワードをコピペします。
「.htpasswd」を用意します。
- 手順①:「新規ファイル」>「.htpasswd」を作成します。
- 手順②:「.htpasswd」>「編集」を選択します。
「.htpasswd」の編集画面が表示されています。
ここに先ほど生成したハッシュ化パスワードをコピペして「更新」をクリックします。
これで「.htpasswd」が用意できました。
WordPressのログイン画面にBasic認証を設定するために「.htaccess」を編集します。
「.htaccess」>「編集」を選択します。
※「.htaccess」は「.htpasswd」と同じ場所にあります。
「.htaccess」を開きます。
「.htaccess」が開きました。
コードを追記します。
※追記する場所は最上下部か、常時SSL化コードを最上部に記載している場合はその下からが良いと思います。
下記のコードをコピペ用として置いておきますので必要な方はお使い下さい。
<Files wp-login.php>
AuthUserfile /ルートディレクトリからのフルパスを入力/.htpasswd
AuthGroupfile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user
</Files>
ルートディレクトリからのフルパスを入力します。
「ルートディレクトリからのフルパスを入力」と記載している部分にルートディレクトリからのフルパスを追記します。
ルートディレクトリからのフルパスの調べ方を紹介します。
※「.htpasswd」と同じ場所に用意します。
- 手順①:「新規ファイル」>「full-path.php」を作成します。
※お好きなファイル名でOK
- 手順②:「full-path.php」>「編集」を選択します。
下記をコピペ用に置いておきますので必要な方はお使い下さい。
<?php
echo __FILE__;
?>
入力するURLは、サイトドメイン/full-path.phpです。
すると、ルートディレクトリからfull-path.phpまでのフルパスが表示されますので、「/full-path.php」を除いたURLを先ほどの場所にコピペします。
これでBasic認証の設定が終わりました。
WordPressのログイン画面にBasic認証を設定できたか確認します。
アドレスバーにURLを入力します。
入力するURLは、サイトドメイン/wp-login.phpです。
Basic認証の画面が表示されましたので「ユーザー名」と「パスワード」を入力後「ログイン」をクリックします。
WordPressのログイン画面が表示されました。
これでWordPressのログイン画面にBasic認証を設定できました。
参考までにXserverでBasic認証を設定する記事を貼っておきます。
今回は以上です。