当前位置: 正能量 » 代码编程 » Linux » 有关nginx的basic auth认证问题

有关nginx的basic auth认证问题

今天好奇,想在nginx上配置下basic认证。在网上搜索了一大把的资料,照着步骤一步一步的配置,最后发现认证失败!!!

最后查出的原因是:windows上使用明文,linux和Unix系统则使用Crypt加密

配置如下:

修改nginx.conf

location / {
    auth_basic           "MMGG.NET";
    auth_basic_user_file htpasswd;
}

生成htpasswd文件放到nginx的conf目录,windows下请写全路径,且用/来代替\

htpasswd文件在windows下则直接使用明文,如:admin:admin

但是在linux下就需要使用Crypt加密,方法如下:

#!/usr/bin/perl
use strict;
chomp(my $filename=$ARGV[0]);
chomp(my $username=$ARGV[1]);
chomp(my $password=$ARGV[2]);
if (!$filename || !$username || !$password) {
  print "USAGE: ./crypt.pl filename username password\n\n";
} else {
  open my $fh, ">>", $filename or die $!;
  print $fh $username . ":" . crypt($password, $username) . "\n";
  close $fh or die $!;
}

拷贝以上代码另存文件为crypt.pl,然后加权限,chmod +x ./crypt.pl

最后执行:./crypt htpasswd admin admin

拷贝当前目录下的htpasswd文件到nginx的conf目录,重启或重载nginx即可。

未经允许不得转载:正能量 » 有关nginx的basic auth认证问题

相关文章

评论 (0)

4 + 6 =