Cách dùng Tạo htpasswd
- Nhập tên người dùng và mật khẩu (hoặc tạo mật khẩu mạnh).
- Giữ bcrypt trừ khi máy chủ của bạn quá cũ.
- Nhấn Thêm người dùng; lặp lại để thêm người khác.
- Sao chép các dòng vào file
.htpasswdhoặc tải file về.
File .htpasswd là gì?
File .htpasswd lưu tên người dùng và hash mật khẩu cho HTTP Basic Authentication, tức là hộp đăng nhập hiện trên trình duyệt để bảo vệ môi trường staging, khu vực quản trị và công cụ nội bộ. Mỗi dòng có dạng username:hash.
Thuật toán
| Định dạng | Tiền tố | Bảo mật | Được hỗ trợ bởi |
|---|---|---|---|
| bcrypt | $2y$ | Mạnh, có muối, chậm | Apache 2.4+, Nginx (qua crypt của hệ thống trên hầu hết Linux), Traefik, Caddy |
| APR1-MD5 | $apr1$ | Có muối nhưng nhanh — yếu theo tiêu chuẩn hiện nay | Apache, Nginx ở mọi nơi |
| SHA1 | {SHA} | Không có muối — nên tránh | Apache, Nginx |
Cách dùng file
Apache (.htaccess hoặc vhost):
AuthType Basic
AuthName "Restricted"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
Nginx:
location /admin/ {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
}
Đặt file ngoài thư mục web gốc và chỉ cho phép máy chủ đọc (ví dụ chmod 640). Basic Auth gửi mật khẩu kèm theo mọi yêu cầu, nên chỉ nên dùng qua HTTPS.
Nginx có thể không chấp nhận bcrypt trên các hệ thống có crypt() thiếu hỗ trợ (một số image Alpine); trong trường hợp đó hãy dùng APR1. Để tạo hash bcrypt đơn lẻ, hãy dùng công cụ tạo bcrypt.
Cũng được tìm dưới tên: htpasswd online, htpasswd generator, mật khẩu nginx basic auth, apache htpasswd, traefik basic auth.
Các công cụ dùng kèm tốt với Tạo htpasswd
- Tạo mật khẩu — Tạo mật khẩu thực sự ngẫu nhiên và mạnh, hoặc cụm mật khẩu dễ gõ, với các quy tắc nâng cao: thêm hoặc loại trừ từ, bắt buộc có ký tự nhất định, chọn ký tự đặc biệt được phép, tránh lặp lại và chuỗi liên tiếp.
- Tạo Cấu Hình Nginx — Chọn việc Nginx cần làm — phục vụ site tĩnh hoặc SPA, proxy tới ứng dụng Node/Python, hoặc chạy PHP — rồi đánh dấu các tùy chọn thêm.
- Công cụ tính Chmod — Tick đọc, ghi và thực thi cho chủ sở hữu, nhóm và những người khác — hoặc nhập 755, rwxr-xr-x hoặc u=rwx,g=rx,o=rx.
- Tạo mã Hash — Tính mã hash MD5 và SHA cho mọi văn bản hoặc file ngay lập tức, tạo chữ ký HMAC và dán checksum mong đợi để kiểm tra file tải về.
Câu hỏi thường gặp
Nginx có hỗ trợ bcrypt trong .htpasswd không?
crypt() của hệ thống. Trên hệ thống không hỗ trợ bcrypt (ví dụ một số image Alpine), hãy dùng APR1-MD5.