kusanagi8の推奨するセキュリティ対応を参考にしました。
ドキュメント - KUSANAGI
KUSANAGIに関するドキュメントです。 過去の ... Read more
.htpasswdファイルの作成
下記コマンドを入力して.htpasswdを任意のディレクトリに作成します。
htpasswd -c /home/kusanagi/.htpasswd [ユーザー名]
このあと設定したいパスワードを入力します。
さらに確認用のパスワードを聞かれるので先ほど入力したパスワードを入力します。
Nginxの設定ファイルを変更
/etc/opt/kusanagi/nginx/conf.d/ 【プロファイル名】 .conf を編集します。
kusanagi8と同じ記述したのですが、うまく動きませんでした。
どうやら正規表現の記述がうまく動かなかった模様。
管理画面アクセス時にwp-adminと記述するとwp-login.phpにリダイレクトされるので wp-login.php にベーシック認証かけました。
vi /etc/opt/kusanagi/nginx/conf.d/【プロファイル名】.conf
httpの場合は【プロファイル名】 .conf ファイル内の下記の中括弧内に記述
server { liseten 80; }
https(SSL) の場合は【プロファイル名】 .conf ファイル内の下記の中括弧内に記述
server { liseten 443 ssl http2; }
下記のように記述します。【許可したいIPアドレス】をxxx.xxx.xxx.xxxに書きます。
location /wp-login.php { satisfy any; allow xxx.xxx.xxx.xxx; deny all; auth_basic "basic authentication"; auth_basic_user_file "/home/kusanagi/.htpasswd"; location ~ [^/]\.php(/|$) { fastcgi_split_path_info ^(.+?\.php)(/.*)$; if (!-f $document_root$fastcgi_script_name) { return 404; } fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_buffers 256 128k; fastcgi_buffer_size 128k; fastcgi_intercept_errors on; fastcgi_read_timeout 120s; } }
nginxを再起動します。
kusanagi nginx
これで管理画面にベーシック認証が表示されるようになりました。
正直、locationの記述がかなり簡素化されたのでこれで合っているのか不安です。
でも、調べても正規表現の記述しか見つからず、ベーシック認証が動かないよりは今の記述で動く方がいいので今回の対応をしました。