Hướng Dẫn Cấu Hình HTTP Basic Authentication Trên Nginx

Bài viết này sẽ hướng dẫn bạn Cấu Hình HTTP Basic Authentication Trên Nginx. Nếu bạn cần hỗ trợ, xin vui lòng liên hệ VinaHost qua Hotline 1900 6046 ext.3, email về support@vinahost.vn hoặc chat với VinaHost qua livechat https://livechat.vinahost.vn/chat.php.

Bạn đang chạy website WordPress và muốn bảo vệ trang admin, đường dẫn URI bất kỳ hay đang trong quá trình cài đặt mà không muốn ai can thiệp. Thì “http basic authentication” là một trong các giải pháp cơ bản để giới hạn quyền truy cập.

Giới thiệu

Web server: nginxhtpasswd

Tham khảo cài đặt Nginx trên:

  • Ubuntu: https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-ubuntu-16-04
  • CentOS: https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-centos-7

Để cài đặt htpasswd: Tiến hành cài gói apache2-utils (Debian, Ubuntu) hoặc httpd-tools (CentOS)

Nếu gặp khó khăn khi cài đặt đặt httpd-tools trên CentOS 6 thì thực hiện như sau:

# yum install apr apr-util

# rpm -Uvh https://rpmfind.net/linux/centos/6.10/os/x86_64/Packages/httpd-tools-2.2.15-69.el6.centos.x86_64.rpm

Hướng dẫn Cấu Hình HTTP Basic Authentication Trên Nginx

Tạo thư mục lưu chứng thực, ở đây mình dùng thư mục /etc/nginx

Thêm một thông tin chứng thực và sử dụng flag: -c nếu bạn chưa có tập tin /etc/nginx/.htpasswd

# htpasswd -c /etc/nginx/.htpasswd admin

Sẽ có prompt chờ bạn nhập thông tin password cho user: admin

Nếu đã tạo tập tin /etc/nginx/.htpasswd, KHÔNG sử dụng flag: -c

# htpasswd /etc/nginx/.htpasswd admin

Nếu user đã tồn tại, thì lệnh trên tương ứng với cập nhật password.

Mẫu password sau khi mã hóa lưu trong /etc/nginx/.htpasswd như sau:

  • admin1: CRYPT encryption : htpasswd -d /etc/nginx/.htpasswd admin1
  • admin2: SHA encryption : htpasswd -s /etc/nginx/.htpasswd admin2
  • admin3: MD5 encryption : htpasswd -m /etc/nginx/.htpasswd admin3 (là thuật toán mã hóa mặc định của CentOS 7 nên có thể không cần flag -m)

Cấu hình location muốn chứng thực trên nginx

  • Ví dụ ta muốn cấu hình chứng thực mọi URI bắt đầu với wp-admin/*
location /wp-admin/ {

auth_basic "Administrato’s Area";

auth_basic_user_file /etc/nginx/.htpasswd;

}

Nhớ reload nginx: # nginx -s reload

  • Nếu bạn muốn cấu hình cho toàn trang domain.com/* nhưng chỉ tắt ở một số URI nhất định, thì đặt auth_basic trong block: server ngang hàng với các location. Sau đó đặt auth_basic off ở vị trí mong muốn.
server {

...

auth_basic "Administrator’s Area";

auth_basic_user_file /etc/nginx/.htpasswd;

location /ahihi/ {auth_basic off;}

}

Hình minh họa truy cập URI đã được bảo vệ như sau:

Sau khi nhập đúng thông tin, trình duyệt sẽ cache thông tin chứng thực này đến khi bạn đóng toàn bộ tab.

THAM KHẢO CÁC DỊCH VỤ TẠI VINAHOST:

>> SERVERCOLOCATION – CDN

>> CLOUDVPS

>> HOSTING

>> EMAIL

>> WEBSITE

>> TÊN MIỀN

Was this article helpful?