Để bảo vệ thư mục bằng mật khẩu thì thông thường cách đơn giản nhất là sử dụng [Basic Authentication](https://en.wikipedia.org/wiki/Basic_access_authentication). Tuy nhiên nhược điểm của cách xác thực này là mật khẩu không được mã hóa trong quá trình truyền dữ liệu giữa server và client. Nếu không sử dụng kết nối bảo mật mà vẫn muốn thiết lập mật khẩu để bảo vệ thư mục thì nên dùng phương pháp xác thực an toàn hơn là [Digest Authentication](https://en.wikipedia.org/wiki/Digest_access_authentication). ###Yêu cầu: Apache có cài đặt và load module `mod_auth_digest`. Kiểm tra trong file `httpd.conf` (hoặc những file conf include), nếu có dòng sau thì OK. ~~~ LoadModule auth_digest_module modules/mod_auth_digest.so ~~~ ###Thực hiện: **1/ Tạo digest file** Cú pháp: ~~~ > htdigest -c [path/to/save/file] [realm] [username] ~~~ Ví dụ: ~~~ > htdigest -c /etc/httpd/.htdigest 'this_is_sample' centos Adding user centos in realm this-is-sample New password: Re-type new password: ~~~ Flag [-c] chỉ cần dùng nếu lần đầu tiên tạo file password. Nếu sử dụng [-c] khi đã tồn tại sẵn file password, **tất cả nội dung (nếu có) sẽ bị xóa hết**. Khi muốn thêm user vào trong file password đã có sẵn, dùng lại command ở trên nhưng không dùng flag [-c] Sau khi tạo xong, file chứa mật khẩu sẽ có nội dung tương tự như sau: ~~~ centos:this_is_sample:7c12eebdac2d32d182432ff5545c29aa ~~~ **2/ Thiết lập trong file .htaccess hoặc httpd.conf** Dưới đây sử dụng cách ghi thiết lập trong file `.htaccess`. Tạo file `.htaccess` trong thư mục muốn bảo vệ mật khẩu chứa nội dung sau: ~~~ AuthName 'this_is_sample' AuthType Digest AuthUserFile /etc/httpd/.htdigest Require user centos ~~~ **3/ Truy cập thử vào thư mục đã được bảo vệ** Sử dụng trình duyệt gõ địa chỉ thư mục đã được bảo vệ, nếu thiết lập đúng sẽ hiện hộp thoại yêu cầu thông tin đăng nhập tương tự như sau: ![](images/digest_auth.png)