KUSANAGIで立てたWordPressにBasic認証をかけたくて、調べたけどうまくいかず試行錯誤した結果、うまくいった手順を記録します。
https:// のURL前提で書かせていただきます。
【参考にしたサイト】
KUSANAGI – 超高速WordPress仮想マシンをnginxでベーシック認証する
Nginx で Basic 認証
作業はroot権限で行なっている前提で書いています。rootでない場合はsudo su -
などでrootに入ってください。
#.htpasswdファイルを作成
Basic認証のユーザーとパスワードのセットを生成します。
$ htpasswd -c /etc/nginx/.htpasswd [ユーザ名]
New password: [パスワード]
Re-type new password: [パスワード]
Adding password for user [ユーザ名]
#confファイルを設定します
該当ファイルがある場所へ一旦移動します。
cd /etc/nginx/conf.d
ここにいくつかファイルがあると思いますが、使うのは[プロファイル名]_http.conf
と[プロファイル名]_ssl.conf
の二つです。
###1.SSLオンリーにするため、11行目のコメントを外します。
vi [プロファイル名]_http.conf
11 rewrite ^(.*)$ [サイトURL]$request_uri permanent; # SSL ONLY
###2.Basic認証設定をします
色々設定しているため行数はずれているかもですが、//追加(49、50行目)
//コメントアウト(80行目) //変更(84行目) 部分を探して対応してください。
vi [プロファイル名]_ssl.conf
47 location / {
48 try_files $uri $uri/ /index.php?$args;
49 auth_basic "Restricted"; #追加
50 auth_basic_user_file "/etc/nginx/.htpasswd"; #追加
51 #include naxsi.d/wordpress/*.conf;
52 }
省略
78 location ~* /wp-login\.php|/wp-admin/((?!(admin-ajax\.php|images/)).)*$ {
79 satisfy any;
80 #allow 0.0.0.0/0; #コメントアウト
81 allow 127.0.0.1;
82 deny all;
83 auth_basic "basic authentication";
84 auth_basic_user_file "/etc/nginx/.htpasswd"; #変更
書き換えたら、上書き保存で最後に$ service nginx restart
で再起動します。
これで、Basic認証がかけられているはずです!