Nginx基本身份验证在http上工作,但在https上不工作

ruoxqz4g  于 2023-03-17  发布在  Nginx
关注(0)|答案(3)|浏览(145)

我在centos 6上运行nginx。域被配置为使用ssl。一些特定的文件夹需要密码保护。如果我用http输入url,浏览器会要求输入用户并通过。如果我用https输入相同的url,则特定文件夹的索引文件将显示,而不要求用户通过。
我有这个在我的域特定的nginx.conf文件:

location /protected_folder {
      auth_basic "Restricted";
      auth_basic_user_file /etc/nginx/.htpasswd;
  }

我怎样才能确保使用http和https的网址都有密码保护?

r3i60tvu

r3i60tvu1#

我看到nginx在同一个目录中有两个配置文件:conf和snginx. conf。我只需要用相同的授权规则更新snginx.conf,就可以了。

nkkqxpd9

nkkqxpd92#

您需要将受限配置放入80和443端口:
/etc/nginx/可用站点/MY_VHOST

server
{
    listen               80;
    server_name          YOUR.FQDN;

.....other config of vhost..... 

    location /protected_folder {
        auth_basic "Restricted";
        auth_basic_user_file /etc/nginx/.htpasswd;
    }
}

server
{
    listen               443;
    server_name          YOUR.FQDN;

.....other config of vhost..... 

    location /protected_folder {
        auth_basic "Restricted";
        auth_basic_user_file /etc/nginx/.htpasswd;
    }
}

或者您可以将http请求重定向到https:

server
{
        listen               80;
        server_name          YOUR.FQDN;
        return 301           https://YOUR.FQDN$request_uri;

}
server
{
    listen               443;
    server_name          YOUR.FQDN;

.....other config of vhost..... 

    location /protected_folder {
        auth_basic "Restricted";
        auth_basic_user_file /etc/nginx/.htpasswd;
    }
}
ogsagwnx

ogsagwnx3#

对于Cloud SigmaV2等云服务,您必须编辑:nginx/conf.d/ssl.config 支持通过https进行身份验证

相关问题