什麼是 htpasswd ?
htpasswd 是開源 http 服務器 apache httpd 的一個命令工具,用於生成 http 基本認證的密碼文件。html
加密方式有什麼區別?
MD5:使用MD5加密密碼。在Windows, Netware 和TPF上,這是默認的加密方式。nginx
crypt:使用crypt()加密密碼。在除了Windows, Netware和TPF的平臺上,這是默認的。 雖然它在全部平臺上能夠爲htpasswd所支持, 可是在Windows, Netware和TPF上不能爲httpd服務器所支持。數據庫
SHA:使用SHA加密密碼。 它是爲了方便轉入或移植到使用LDAP Directory Interchange Format (ldif)的Netscape而設計的。apache
plain:不加密,使用純文本的密碼。雖然在全部平臺上 htpasswd 均可以創建這樣的密碼, 可是httpd後臺只在Windows, Netware和TPF上支持純文本的密碼。vim
爲何要作成在線的?
若是咱們不使用apache服務器,例如使用nginx等,可能手頭沒有這個命令行工具,就沒法生成密碼文件,有了在線版的能夠方便服務器管理員使用。服務器
(1) 在線htpasswd生成器app
http://tool.oschina.net/htpasswdtcp
(2) 離線(本地)生成htpasswd工具
a. 經過htpasswd命令生成用戶名及對應密碼數據庫文件。oop
//建立認證信息,wyl 爲認證用戶名 [root@bgs-5p173-wangwenting ~]# htpasswd -c /usr/local/nginx/passwd.db wyl //輸入認證密碼 New password: ******* //再次輸入認證密碼 Re-type new password: ******** Adding password for user wyl //修改網站認證數據庫權限 [root@bgs-5p173-wangwenting ~]# chmod 400 /usr/local/nginx/passwd.db //修改網站認證數據庫屬主和屬組 [root@bgs-5p173-wangwenting ~]# chown root:root /usr/local/nginx/passwd.db //能夠看到經過htpasswd生成的密碼爲加密格式 [root@bgs-5p173-wangwenting ~]# cat /usr/local/nginx/passwd.db wyl:r5IXRXWSmlBk6
//主配置文件中http字段中添加如下語句 [root@bgs-5p173-wangwenting ~]# vim /usr/local/nginx/conf/nginx.conf user root; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; server { listen 80; server_name localhost; location / { root html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } server { listen 12171; server_name localhost; client_max_body_size 151m; location / { auth_basic "s1"; #虛擬主機認證命名 auth_basic_user_file /usr/local/nginx/passwd.db; #虛擬主機用戶名密碼認證數據庫 #proxy_pass http://10.0.0.10:9011; #nginx 訪問 root html; index index.html index.htm; } } server { listen 12172; server_name localhost; client_max_body_size 151m; location / { auth_basic "s1"; #虛擬主機認證命名 auth_basic_user_file /usr/local/nginx/passwd.db; #虛擬主機用戶名密碼認證數據庫 proxy_pass http://10.0.0.10:8088; #hadoop 訪問 } }
sudo chown root:www-data htpasswd sudo chmod 640 htpasswd
受權失敗會致使 服務器500的錯誤
// 測試重啓配置文件是否正確 # nginx -t nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful // 平滑重啓 # nginx -s reload