ConoHaのkusanagi9でWordPressの管理画面にベーシック認証かける方法

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の記述がかなり簡素化されたのでこれで合っているのか不安です。
でも、調べても正規表現の記述しか見つからず、ベーシック認証が動かないよりは今の記述で動く方がいいので今回の対応をしました。

新入社員の頃にシステムエンジニアの会社に入社。その後、WEB制作系の仕事に転職しました。

くるりんをフォローする
linuxWordPress
スポンサーリンク
くるりんをフォローする
Memorandums