2026年8月29日
2026年8月29日
WordPressでBasic認証をかける方法(サイト全体・特定ページ)
はじめに
WordPressサイトでBasic認証を設定することで、ユーザーのパスワードを暗号化し、不正アクセスから守ることができます。この記事では、ApacheとNginxを使用したWordPressサイト全体や特定ページへのBasic認証の設定方法について詳しく解説します。
症状・背景
- バックエンド向けの管理画面保護
- 一時的に公開する開発環境を保護
- 特定のコンテンツを非公開で管理する
- セキュリティ対策として全体的な強化が必要な場合
手順・設定方法
ステップ1: Apacheでの基本設定
# WordPressの公開ディレクトリに移動
cd /var/www/html/wordpress
# .htaccessファイルを作成または編集
nano .htaccess
# Basic認証を有効にするための設定を追加
AuthName "Protected Area"
AuthType Basic
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
ステップ2: Nginxでの基本設定
# Nginxのサーバーブロックファイルに移動
nano /etc/nginx/sites-available/default
# Basic認証を有効にするための設定を追加
server {
listen 80;
server_name example.com;
location / {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
# WordPressの公開ディレクトリへのパス
root /var/www/html/wordpress;
index index.php index.html;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
}
ステップ3: ユーザーパスワードファイルの作成
# htpasswdコマンドを使用してユーザーパスワードファイルを作成または編集
sudo htpasswd -c /etc/apache2/.htpasswd username
# Nginxの場合も同様にパスワードファイルを設定
sudo htpasswd -c /etc/nginx/.htpasswd username
ステップ4: 設定の有効化とテスト
# Apacheの設定を有効にする
sudo a2enmod auth_basic
sudo systemctl reload apache2
# Nginxの場合、設定ファイルが正しいかどうか確認して再起動
sudo nginx -t
sudo systemctl restart nginx
注意事項
- セキュリティ上の注意: パスワードは安全に管理し、FTPやSFTP経由での転送を避けること。
- パフォーマンス/運用上の注意: Basic認証は全てのアクセスに対して要求されるため、大量のトラフィックがあるサイトではパフォーマンスに影響を与える可能性がある。
まとめ
1. Basic認証の設定: WordPressの公開ディレクトリに.htaccessファイルを作成または編集し、ApacheやNginxでの基本設定を行う。
2. ユーザーパスワード管理: htpasswdコマンドを使用して、安全なパスワードを管理する。
3. セキュリティ強化: ユーザーのアクセス権限を制御することで、サイト全体や特定ページへのアクセスを厳格に管理できる。
4. パフォーマンス監視: Basic認証は全てのアクセスに対して要求されるため、負荷が高い場合や大量のトラフィックがある場合には他のセキュリティオプションも検討すること。
関連記事: