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

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

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

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

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


person BastiaanWW    schedule 22.10.2016    source источник


Ответы (2)


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

person BastiaanWW    schedule 22.10.2016

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

/ и т.д. / 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;
    }
}
person Alban VIDAL    schedule 22.10.2016