Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách bảo vệ mật khẩu trang web hoặc nội dung trên máy chủ web Apache chạy trên máy chủ dựa trên CentOS.
Các bước thực hiện như sau:
Bước 1. Cho phép xác thực file .htaccess
Mặc định Apache không cho phép sử dụng các tệp .htaccess. Để sử dụng cần thiết lập Apache cho phép xác thực dựa trên .htaccess
Cấu hình file httpd.conf như sau:
# sudo nano /etc/httpd/conf/httpd.conf
Trong file httpd.conf tìm đoạn
<Directory "/var/www/html">
Thay đổi dòng AllowOverride none thành AllowOverride AuthConfig
AllowOverride AuthConfig
Lưu lại và đóng file lại thực hiện tiếp bước 2.
Chú ý: trường hợp bạn đang cấu hình file httpd.conf là AllowOverride All thì có thể bỏ qua bước này
Bước 2. Tạo file chứa mật khẩu
Giờ chúng ta cần tạo một file lưu trữ mật khẩu trong thư mục /ect/httpd/ bằng cách sử dụng lệnh htpasswd của Apache để xác thực người dùng.
# sudo htpasswd -c /etc/httpd/.htpasswd ictsharing
Lần đầu tiên sử dụng tiện ích này, cần thêm tùy chọn -c để tạo file được chỉ định. Chúng ta chỉ định tên người dùng (ictsharing) ở cuối lệnh để tạo mục nhập mới trong tệp.
sau đó hệ thống sẽ yêu cầu nhập mật khẩu cho tài khoản ictsharing
Chú ý: Chỉ sử dụng -c lần đầu tiên bạn tạo tệp. Không sử dụng -c khi bạn thêm người dùng trong tương lai.
# sudo htpasswd /etc/httpd/.htpasswd ictsharing001
Nếu bạn muốn xem nội dung của tệp, bạn có thể xem tên người dùng và mật khẩu được mã hóa cho mỗi bản ghi
# nano /etc/httpd/.htpasswd
Bước 3. Cấu hình Xác thực Mật khẩu Apache
Bây giờ bạn cần tạo một tệp .htaccess trong thư mục web mà bạn muốn tạo mật khẩu. Trong bài hướng dẫn này, mình sẽ tạo tệp .htaccess trong thư mục /var/www/html/ để hạn chế toàn bộ gốc tài liệu.
Nếu bạn muốn tạo mật khẩu cho một thư mục khác trong /var/www/html/ bạn chỉ việc tạo file .htaccess bên trong thư mục đó là được.
# sudo nano /var/www/html/.htaccess
Sau đó, thêm đoạn code vào file .htaccess vừa tạo
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/httpd/.htpasswd
Require valid-user
Lưu lại và khởi động lại server Apache
# sudo apachectl restart
Bạn truy cập vào link web của bạn để xem kết quả.
Nếu thành công nó sẽ như hình sau:
Nếu bạn nhập thông tin username và Password sai nó sẽ báo như sau: