WordPressのログイン画面にBasic認証を設定|既存のセキュリティ設定との干渉に注意
WordPressの管理画面は、サイトの更新や各種設定を行う重要な場所です。そのため、「ログイン画面へのアクセス自体を制限したい」というご相談をいただくことがあります。今回は、WordPressのログイン画面にBasic認証を追加し、認証を通過した場合のみWordPressのログイン画面へ進めるよう設定しました。
Basic認証は、WordPressのユーザー名・パスワードとは別に認証を設ける方法です。ただし、すでにセキュリティプラグインなどでログイン画面に関する設定を行っている場合、設定同士が干渉することがあります。今回も既存の設定を確認しながら、500エラーが発生しない構成へ調整したうえで実装しました。
今回のご相談内容
今回は、人材派遣会社様から「WordPressのログイン画面にBasic認証を設定してほしい」というご相談をいただきました。サーバーに関する不正アクセスの問題を受け、Webサイトのセキュリティについて心配されていたことが今回のご依頼のきっかけです。
対象サイトでは、すでにWordPressのセキュリティ対策として「All In One WP Security」が導入されており、通常とは異なるログインURLを使用する設定が行われていました。そのため、単純にBasic認証を追加するのではなく、既存のセキュリティ設定との兼ね合いを確認しながら作業する必要がありました。
また、サーバーはお客様ご自身で契約されている環境のため、当社側で自由にサーバーの管理画面へログインできる状態ではありませんでした。そこで、実装に必要な情報を確認しながら作業を進めました。
発生していた症状・エラー内容
今回は、Webサイトに不具合が発生してからご相談いただいたケースではなく、セキュリティを強化するための予防的な対応でした。WordPress自体や公開中のWebサイトには、作業前の時点で今回のご依頼に直接関係するエラーが発生していたわけではありません。
一方、Basic認証の設定を進める中で注意が必要だったのが、既存のセキュリティプラグインによるログインURL変更です。この設定を有効にした状態でBasic認証を追加すると設定が干渉し、500エラーが発生しました。
500エラーはサーバー側で正常に処理できなかった場合などに表示されるエラーですが、原因はさまざまです。今回の場合はBasic認証そのものが利用できないのではなく、既存のログイン画面保護機能との組み合わせがポイントになりました。
原因の特定ポイント
Basic認証を設定する際は、「.htpasswd」という認証情報を保存するファイルを用意し、「.htaccess」という設定ファイルからそのファイルを参照させる方法があります。このとき、.htpasswdが置かれている場所を正しく指定するため、サーバー上の絶対パスを確認する必要があります。
今回はこちらの設定だけでなく、WordPress側ですでに行われているセキュリティ対策についても確認しました。その結果、All In One WP Securityの総当たり攻撃対策に含まれるログインURL変更が有効になっており、Basic認証の設定と干渉していることを確認しました。
セキュリティ対策は、複数追加すればその分だけ安全になるとは限りません。それぞれの機能が同じ部分を制御している場合、設定同士が競合してエラーにつながることがあります。そのため、新しい対策を追加するときには、現在どのような保護機能が動いているのかを確認することが重要です。
実際に行った対応内容
まず、Basic認証の設定に必要となるサーバー上の絶対パスを確認しました。そのうえで、既存の設定との干渉を避けるため、All In One WP Securityで設定されていた総当たり攻撃対策のうち、ログインURLを変更する設定を解除しました。
続いて、Basic認証で使用する.htpasswdを作成し、.htaccessへ必要な設定を追加しました。これにより、WordPressのログイン画面へ直接アクセスしようとすると、まずBasic認証が表示される構成になります。ここで正しい認証情報を入力して通過すると、その後にWordPress本来のログイン画面が表示されます。
設定後は、Basic認証が正常に表示されることだけではなく、認証を通過したあとにWordPressへ問題なくログインできるところまで確認しました。また、管理画面だけに注目するのではなく、一般の方が閲覧するWebサイト側にも500エラーなどの影響が出ていないか、あわせて確認しています。
対応後の結果・改善点
調整後は、WordPressのログイン画面へアクセスした際にBasic認証が正常に動作し、正しい認証情報を入力するとWordPressのログイン画面へ進めることを確認しました。その後のWordPressへのログインについても問題ありませんでした。
また、公開されているWebサイトについても表示を確認し、今回の設定によるエラーなどが発生していないことを確認しています。
これにより、WordPressのログイン認証とは別に、その手前でも認証を求める構成となりました。ログイン画面へ到達するために一段階認証が増えるため、管理画面へのアクセスを制限する方法のひとつとして利用できます。
今回の対応から分かったこと
今回のポイントは、Basic認証の設定方法そのものよりも「すでに導入されているセキュリティ対策との干渉を確認すること」でした。
WordPressにはさまざまなセキュリティプラグインがあり、ログインURLの変更、ログイン試行回数の制限、不正アクセス対策など、多くの機能を追加できます。一方で、サーバー側の設定とWordPress側の設定が同じログイン処理に関係していると、意図しないエラーにつながる場合があります。
そのため、「Basic認証を追加すれば完了」と考えるのではなく、現在のサイトにどのようなセキュリティ設定が入っているのかを確認し、役割が重複したり干渉したりしないかを判断することが大切です。
同様のトラブルを防ぐために
WordPressのセキュリティを強化するときは、新しい機能を追加する前に現在の設定を確認することをおすすめします。特にログイン画面に関する設定は、WordPress本体だけでなく、セキュリティプラグインやサーバー側の設定など、複数の場所から制御されている場合があります。
また、.htaccessはWebサイトの動作に直接関係する重要なファイルです。記述内容に問題があると、管理画面だけでなくWebサイト全体が500エラーとなる可能性もあります。変更する場合は元の内容を控えておき、問題が発生したときにすぐ戻せる状態で作業することが重要です。
設定後にはBasic認証の表示だけを確認するのではなく、「認証を通過できるか」「WordPressへログインできるか」「公開中のページが正常に表示されているか」まで一連の流れとして確認しておくと安心です。
メディアプライムスタイルのサポートについて
メディアプライムスタイルでは、WordPressサイトの保守や更新、不具合の調査、セキュリティに関する設定などを行っています。
WordPressのセキュリティ対策は、サイトごとに導入されているプラグインやサーバー環境、既存の設定が異なるため、一律に同じ設定を追加すればよいとは限りません。今回のように既存の設定との干渉が発生するケースもあるため、現在の環境を確認したうえで対応方法を検討することが大切です。
「ログイン画面のセキュリティを見直したい」「設定を変更したらエラーが出るようになった」「どのセキュリティ対策が必要なのか分からない」といった場合も、現在のサイト環境を確認しながら対応方法をご案内しています。
🐾 さぽたん日記からのご案内
ホームページを育てるお手伝い
ホームページは作って終わりではなく、
小さな修正や改善を重ねながら育てていくものです。
日々の対応内容を「さぽたん日記」でご紹介しています。