#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