【XserverVPS】Nginx × WordPress wp-login.phpにベーシック認証をかける【Kusanagi9】

nginxは初見だったので把握するのに時間はかかりました。
下記環境でない方はおそらく設定やファイル構成が異なるため上手くいかないため注意。

環境

  • サーバー: XserverVPS
  • OS: KUSANAGI9 (CentOS Stream8)
  • httpd: nginx1.xx

結論

XserverVPS × KUSANAGI 環境で作成したWPであれば管理画面にベーシック認証をかけるための設定ファイルが既に用意されているので設定ファイルから一行コメントアウトしてパスワードファイルを設置するだけで完了する。
以下その手順。

設定ファイルを編集

既にファイルは用意されているため下記 .wp.inc を編集。

/etc/opt/kusanagi/nginx/conf.d/プロビジョニング名.wp.inc

21~24行目辺り
location ~* /wp-login\.php|/wp-admin/((?!(admin-ajax\.php|images/)).)*$ {
    satisfy any;
    allow 0.0.0.0/0;
    allow 127.0.0.1;
    deny all;
    auth_basic "basic authentication";
    auth_basic_user_file  "/home/kusanagi/.htpasswd";

↓

location ~* /wp-login\.php|/wp-admin/((?!(admin-ajax\.php|images/)).)*$ {
    satisfy any;
    #####allow 0.0.0.0/0;
    allow 127.0.0.1;
    deny all;
    auth_basic "basic authentication";
    auth_basic_user_file  "/home/kusanagi/.htpasswd";

設定を反映させるため auth_basic_user_file で指定したパスに .htpasswd を用意する必要がある。今回の初期設定では /home/kusanagi/.htpasswd となっていた。

.htpasswd作成

コマンドで作る方が多いようですが、下記のような生成サイトを用いて生成された文字列を .htpasswd にコピペでも可。

.htpasswd生成 | ベーシック認証用のパスワードを一発作成 | すぐに使える便利なWEBツール | Tech-Unlimited
Apacheでベーシック認証を設定する際のパスワードを生成します。サクッと作成したら.htpasswdファイルに貼り付けるだけ。
htpasswdファイル生成(作成)
htpasswdファイル生成(htpasswdファイル作成)するweb・ウェブ制作に役立つ便利ツール。htaccessを利用したユーザー認証によるアクセス制限(ベーシック認証)が可能です。

生成した文字列を /home/kusanagi/.htpasswd に貼り付けて保存。

vi /home/kusanagi/.htpasswd

test:8SPJ6EBcocVVc

設定を反映

最後に systemctl restart nginx でリスタート。記述ミスがある場合はここでエラーが出力される。
リスタート後に管理画面にベーシック認証が掛かっていることを確認して終了。

コメント