最后它使用htpasswd
创建一个用户:密码文件,看起来像是以某种方式进行了哈希处理。如果我看一下我看到的文件......
username:$somekindofpasswordhashandnotthepasswordientered
说明然后告诉我像这样制作一个服务器块......
server {
listen your_server_ip:80;
server_name example.com;
auth_basic "Authentication Required";
auth_basic_user_file netdata-access;
netdata-access
是nginx conf目录中的密码文件。因此,当我访问此页面并输入密码时,我是通过网络发送密码明文,还是nginx模块对它进行加密?服务器块在端口80而不是443 ...
答案 0 :(得分:4)
auth_basic
适用于连接到服务器时打开的同一连接,因此http
上的纯文本和https
上的SSL / TLS加密。在发送到服务器之前, user / pass 组合上发生的唯一处理是Base64
编码。
您可以使用curl
查看标题:
$ curl -v -u your_user_name "http://......."
查找包含> Authorization: Basic ...
Base64
编码的user:pass
行。
您可以使用以下方法解码字符串:
printf auth_string | base64 --decode
更多详情here。
关于密码文件,nginx
可以在密码文件(info here)中使用明文和散列密码:
<强> 1。纯文字:
# comment name1:password1 name2:password2:comment name3:password3
<强> 2。加密/散列:强>
使用crypt()函数加密;可以使用Apache HTTP Server发行版中的“htpasswd”实用程序生成 “openssl passwd”命令;
使用基于MD5的密码算法(apr1)的Apache变体进行哈希处理;可以使用相同的工具生成;
由RFC 2307中描述的“{scheme} data”语法(1.0.3+)指定;目前实施的计划包括PLAIN(an 示例一,不应该使用),SHA(1.3.13)(普通SHA-1 不应使用散列)和SSHA(盐渍SHA-1散列,使用 一些软件包,特别是OpenLDAP和Dovecot)。
$ htpasswd
Usage:
htpasswd [-cimBdpsDv] [-C cost] passwordfile username
htpasswd -b[cmBdpsDv] [-C cost] passwordfile username password
htpasswd -n[imBdps] [-C cost] username
htpasswd -nb[mBdps] [-C cost] username password
-c Create a new file.
-n Don't update file; display results on stdout.
-b Use the password from the command line rather than prompting for it.
-i Read password from stdin without verification (for script usage).
-m Force MD5 encryption of the password (default).
-B Force bcrypt encryption of the password (very secure).
-C Set the computing time used for the bcrypt algorithm
(higher is more secure but slower, default: 5, valid: 4 to 31).
-d Force CRYPT encryption of the password (8 chars max, insecure).
-s Force SHA encryption of the password (insecure).
-p Do not encrypt the password (plaintext, insecure).
-D Delete the specified user.
-v Verify password for the specified user.
On other systems than Windows and NetWare the '-p' flag will probably not work.
The SHA algorithm does not use a salt and is less secure than the MD5 algorithm.