kusanagi(nginx)にbasic認証をかける(WordPressとphpMyAdminのログイン画面)
参考URL:
https://chronoir.net/use-basic-auth-for-wordpress/
https://www.saaria.info/archives/2776
前提:
.htaccessファイルはapacheの機能なので、nginxでは使えない。
1, .htpasswdファイルはnginxでも同じなので、htpasswdコマンドで生成する(どっかのWebサイトで生成でもOK!)
1 2 3 4 |
# -c=新規作成(上書き)、-s=SHA1でハッシュ化 htpasswd -cs /home/kusanagi/.htpasswd ユーザ名 New password: パスワードを入力 Re-type new password: 再入力 |
2. nginxの設定ファイルを修正する
httpsなら、/etc/nginx/conf.d/kusanagi_html_ssl_conf
httpなら、 /etc/nginx/conf.d/kusanagi_html_http_conf
WordPressログイン画面のBasic認証は、すでに記述されているので1行コメントアウトするだけ(78行目)
自分のPCのネットワークのIPアドレスだけ無条件OKにするなら、もう1行記述。
1 2 3 4 5 6 7 8 9 |
location ~* /wp-login\.php|/wp-admin/((?!(admin-ajax\.php|images/)).)*$ { satisfy any; #以下の条件のどれか(or条件)、satisfy allだとAND条件 # デフォルトだと認証無しで、どこからでもOK! # allow 0.0.0.0/0; allow 127.0.0.1; allow 1.2.3.4; # 自分のPCのネットワークのIPアドレス deny all; auth_basic "basic authentication"; auth_basic_user_file "/home/kusanagi/.htpasswd"; |
Webサーバを再起動
1 |
systemctl restart nginx |
3, phpmyadminログイン画面のBasic認証は、記述されていないので上記の次あたりに自分で追記する
1 2 3 4 5 6 7 |
location /phpmyadmin/ { satisfy any; #以下の条件のどれか(or条件)、satisfy allだとAND条件 allow 127.0.0.1; allow 1.2.3.4; # 自分のPCのネットワークのIPアドレス auth_basic "Restricted"; auth_basic_user_file "/home/kusanagi/.htpasswd"; } |
Webサーバを再起動
1 |
systemctl restart nginx |
.htaccessファイルを置くだけでbasic認証をかけられるapacheの方が楽だな~。