- vừa được xem lúc

Hướng dẫn cấu hình Basic Authentication trên Nginx

0 0 27

Người đăng: Phi Hoang

Theo Viblo Asia

Trong quá trình phát triển web, có những lúc chúng ta sẽ cần phải giới hạn người dùng truy cập đến website của mình và để giới hạn chúng ta có thể yêu cầu người dùng xác thực qua tài khoảnmật khẩu.

Bài viết này sẽ hướng dẫn cho bạn các bước để cấu hình Basic Authentication bảo vệ server Nginx chạy trên môi trường Ubuntu Server.

Yêu cầu

  1. Chuẩn bị 1 VPS Ubuntu Server
  2. Cài đặt Nginx là web server
sudo apt-get update
sudo apt-get install nginx

Tạo file lưu mật khẩu

Để tạo mật khẩu, chúng ta có thể sử dụng OpenSSL.

Nếu server đã có OpenSSL thì có thể chuyển qua bước tiếp theo, còn chưa có thì chúng ta cần cài đặt OpenSSL trước thông qua lệnh:

sudo apt install libssl-dev
sudo apt install openssl

Tạo một file .htpasswd để lưu tài khoản và mật khẩu bên trong thư mục /etc/nginx/basic-auth. Nếu có nhiều web cùng chạy trên server này thì có thể tạo các file riêng cho từng web, ví dụ .htpasswd-web, .htpasswd-another-web.

Đầu tiên chúng ta sẽ thêm tên đăng nhập vào file .htpasswd. Ví dụ chúng ta sử dụng tên đăng nhập là username thì chạy lệnh:

sudo sh -c "echo -n 'username:' >> /etc/nginx/basic-auth/.htpasswd"

Tiếp theo chúng ta cần thêm mật khẩu đã mã hóa cho tên đăng nhập username bằng lệnh:

sudo sh -c "openssl passwd -apr1 >> /etc/nginx/basic-auth/.htpasswd"

Sau khi chạy lệnh trên, nhập mật khẩu mong muốn và xác nhận mật khẩu rồi nhấn Enter.

Xem nội dung file .htpasswd vừa tạo, chạy lệnh:

cat /etc/nginx/basic-auth/.htpasswd

Nội dung có dạng như bên dưới nghĩa là chúng ta đã tạo thành công tài khoản và mật khẩu:

username:$apr1$2KLGvvZj$6DYTtfzjTIlI0HPQOhLbG0

Cấu hình xác thực mật khẩu cho Nginx

Cập nhật file config nginx, trong ví dụ này mình sử dụng file default của nginx, ngoài ra mọi người có thể cập nhật vào file config tương ứng với web trên server cửa mình.

sudo nano /etc/nginx/sites-enabled/default

Ban đầu file /etc/nginx/sites-enabled/default có dạng như sau:

server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; root /usr/share/nginx/html; index index.html index.htm; server_name localhost; location / { try_files $uri $uri/ =404; }
}

Chúng ta thêm auth_basicauth_basic_user_file trỏ đến file tên đăng nhập và mật khẩu bạn vừa mới tạo ở trên.

server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; root /usr/share/nginx/html; index index.html index.htm; server_name localhost; location / { try_files $uri $uri/ =404; auth_basic "Restricted Content"; auth_basic_user_file /etc/nginx/basic-auth/.htpasswd; }
}

Lưu file config lại và restart lại server.

sudo systemctl restart nginx

Sau khi khởi động lại server, truy cập vào trang web của mình, chúng ta sẽ thấy có 1 cửa sổ bật ra yêu cầu nhập tên đăng nhập và mật khẩu (giống như hình ảnh ở đầu bài viết). Nếu chúng ta điền đúng tài khoản thì sẽ được phép truy cập vào bên trong trang web. Ngược lại nếu điền sai hoặc chọn cancel thì trang web sẽ tự chuyển hướng đến trang thông báo lỗi 401 Authorization Required.

Bình luận

Bài viết tương tự

- vừa được xem lúc

NGINX là gì? NGINX server hoạt động như thế nào?

Lời nói đầu. Mình thường thấy NGINX dùng trong các dự án, và dự án hiện tại của mình cũng đang dùng.

0 0 50

- vừa được xem lúc

Các cấu hình sai Nginx phổ biến khiến web server của bạn gặp nguy hiểm (Part 1)

Intro. Nginx được sử dụng làm web server, reverse proxy mạnh mẽ, nginx được cài đặt cho khoảng 1/3 số web site trên thế giới này.

0 0 74

- vừa được xem lúc

Giới thiệu về NGINX và core concept

1. NGINX là gì. 2. Tiểu sử.

0 0 34

- vừa được xem lúc

Cấu hình Nginx Server như thế nào?

Nginx là một Web Server phổ biến, quen thuộc đối với những Web Developer. Nginx hoạt động mạnh mẽ với hiệu suất cao, khả năng xử lí nhiều request đồng thời một lúc mà lại tốn ít tài nguyên.

0 0 141

- vừa được xem lúc

Dynamic Routing trong NGINX

Tiếp nối bài viết trước, Cấu hình Nginx Server như thế nào?. Trong bài viết này, mình sẽ giới thiệu về Dynamic Routing trong NGINX.

0 0 42

- vừa được xem lúc

Cách cấu hình NGINX thành Reverse Proxy

Tiếp nối bài viết trước Dynamic Routing trong NGINX, trong bài viết này mình sẽ hướng dẫn các bạn cách cấu hình NGINX thành Reverse Proxy. Một số ưu điểm của Reverse Proxy là:.

0 0 140