Базовая аутентификация Nginx, работающая по http, но не по https

#ssl #nginx #https #nginx-location

#ssl #nginx #https #nginx-location

Вопрос:

Я запускаю nginx на centos 6. Домен настроен на использование ssl. Некоторые определенные папки должны быть защищены паролем. Если я ввожу URL с помощью http the basic, браузеры запрашивают ввести user и передать. Если я введу тот же URL-адрес с помощью https, то индексный файл конкретной папки будет показан без запроса доступа пользователя.

У меня есть это в файле nginx.conf, относящемся к моему домену:

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

Как я могу убедиться, что оба URL-адреса, использующие http и https, защищены паролем?

Ответ №1:

Я видел, что у nginx есть два конфигурационных файла в одном каталоге: nxingx.conf и snginx.conf. Мне просто нужно было обновить snginx.conf с теми же правилами аутентификации, и все это сработало.

Ответ №2:

Вам необходимо установить вашу конфигурацию с ограниченным доступом на 80 и 443 портах :

/etc/nginx/sites-available/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;
    }
}
  

Ответ №3:

Для облачных сервисов, таких как Cloud Sigma или V2, вам необходимо отредактировать: nginx/conf.d/ssl.config для поддержки аутентификации по https