利用 htpasswd|openssl 为 Apache|Nginx 401 basic_auth|AuthType Basic 验证生成密码

小助手读文章 00:00 / 00:00

温馨提示:
本文所述内容具有依赖性,可能因软硬条件不同而与预期有所差异,故请以实际为准,仅供参考。

Apache/Nginx 自带 401 密码验证,相较于开发一套登录系统,更为简单方便,下面来说说如何生成密码以及如何启用。

生成密码

401 验证密码可以利用 Apache 的 htpasswd ,也可以利用 OpenSSL 的 passwd,可自行视方便程度选择,比如 OpenSSL 系统一般自带,如果服务器安装的是 Nginx,就可以直接使用 OpenSSL 的 passwd,如果安装的是 Apache 则随意。

htpasswd

安装软件

# yum install httpd-tools -y               #适用 centos
$ sudo apt-get install apache2-utils -y    #适用 ubuntu

生成/修改/删除密码

$ htpasswd -c /var/www/html/.htpasswd user1  #回车会要求输入两遍密码,会清除已有的所有用户
$ htpasswd -bc /var/www/html/.htpasswd user1 password  #不用回车,直接指定 user1 的密码 为password
$ htpasswd -b /var/www/html/.htpasswd user2 password   #添加一个用户,如果用户已存在,则是修改密码
$ htpasswd -D /var/www/html/.htpasswd user2  #删除用户

/var/www/html/.htpasswd 是验证用户密码存储的文件位置

openssl

安装软件

一般系统默认自带,如果是最小化安装,可以执行下列命令安装

#  yum install openssl openssl-devel -y      #适用 centos
#  apt install openssl openssl-devel -y  #适用 ubuntu

生成密码

# printf "your_username:$(openssl passwd -crypt your_password)\n" >>  /var/www/html/.htpasswd

启用 401 密码验证

Apache/Nginx 默认已编译密码验证模块,如 Nginx 是 ngx_http_auth_basic_module,如果没有开启
以重新编译加上开启参数即可。

Apache

在配置文件中将需要保护的路径 添加 <Directory> 并开启 basic 认证:

<Directory /data/webroot/mail_admin >
......
        AuthType Basic
        AuthName "Authority Required"   # 验证时的提示信息,但并非所有终端都支持显示 
        AuthUserFile /var/www/html/.htpasswd 
        Require user admin
......
</Directory>

重启生效。

Nginx

同样在需要保护的地方添加 basic 认证:

......
location /
.......
   auth_basic "Authority Required";  # 验证时的提示信息,但并非所有终端都支持显示 
   auth_basic_user_file /var/www/html/.htpasswd ;
.......
}
......

同样重启生效。


ArmxMod for Typecho
个性化、自适应、功能强大的响应式主题

推广

 继续浏览关于 nginxapache验证htpasswdopenssl密码basic_auth 的文章

 本文最后更新于 2018/09/25 12:30:00,可能因经年累月而与现状有所差异

 引用转载请注明: VirCloud's Blog > 运维 > 利用 htpasswd|openssl 为 Apache|Nginx 401 basic_auth|AuthType Basic 验证生成密码