欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

HTTP Basic Auth 备忘 http basic authhttpauthnginx 

程序员文章站 2022-05-09 17:00:21
...

http://wiki.nginx.org/HttpAuthBasicModule

http://wiki.nginx.org/Faq#How_do_I_generate_an_htpasswd_file_without_having_Apache_tools_installed.3F

 

 

location  /  {

  auth_basic            "Restricted";

  auth_basic_user_file  htpasswd;

}

 

命令1:auth_basic  表示使用HTTP Basic Auth,不是其他的Auth形式。

auth_basic "Restricted" 字符串仅仅是提示,作为HTTP头,可以随便写。

 

命令2:auth_basic_user_file  表示HTTP Basic Auth的密码文件存储地址。

htpasswd表示文件是跟conf目录下(也就是nginx.conf锁在的目录)。

需要注意的是:密码文件本身是加密存储的,用的是crypt(3)算法。

Nginx官方建议用apache的工具生成加密文件。但是如果你没有Apache,也有办法:

printf "myuser:$(openssl passwd -crypt mypwd)\n" >> htpasswd

表示向密码文件htpasswd追加账号名为myuser,密码名mypwd的账号。

还有注意的是:密码不能超过8个字节,否则会按8字节处理。

Warning: truncating password to 8 characters

 

 

curl http://www.example.com/protected.html -I

curl http://www.example.com/protected.html -I --basic -u myuser:mypwd

 

 

[@tc_52_122 conf]# curl http://www.example.com/protected.html -I

HTTP/1.1 401 Unauthorized

Server: nginx/1.0.5

Date: Fri, 14 Dec 2012 07:37:14 GMT

Content-Type: text/html

Content-Length: 194

Connection: close

WWW-Authenticate: Basic realm="Secure Area"

 

 

[@tc_52_122 conf]# curl http://www.example.com/protected.html -I --basic -u myuser:mypwd

HTTP/1.1 200 OK

Server: nginx/1.0.5

Date: Fri, 14 Dec 2012 07:37:29 GMT

Content-Type: text/html

Content-Length: 23

Last-Modified: Fri, 14 Dec 2012 06:54:02 GMT

Connection: close

Accept-Ranges: bytes

 

[@tc_52_122 conf]#