.NET Core - RequireHttpsAttribute вызывает ERR_TOO_MANY_REDIRECTS в Ubuntu с Apache2 - PullRequest
0 голосов
/ 25 апреля 2018

Использование .NET Core 2.0, если я следую официальной документации для принудительного применения HTTPS, веб-сайт не загружается с ошибкой ERR_TOO_MANY_REDIRECTS.

Действия для воспроизведения:

  1. Создание нового .NETRazor App: dotnet new razor -o aspnetcoreapp
  2. Добавьте два фрагмента кода из документации, подробно описанной здесь: https://docs.microsoft.com/en-us/aspnet/core/security/enforcing-ssl?view=aspnetcore-2.0
  3. Развертывание на Apache2, работающем в Ubuntu 17.10 (не тестировалось в старых версиях), гдеconf передает соединение с сервером Kestrel, используя этот код:

ProxyPreserveHost On ProxyPass / http://127.0.0.1:5001/ ProxyPassReverse / http://127.0.0.1:5001/

Если код из шага 2 удален, то веб-сайт работает нормально по HTTP или HTTPS (но, очевидно, не перенаправляет) но если этот код добавлен, сайт не загружается с ERR_TOO_MANY_REDIRECTS по HTTP или HTTPS.Кажется, что методы изменились с .NET Core 2.1, но это еще не было выпущено.

Ответы [ 2 ]

0 голосов
/ 26 апреля 2018

Проверьте свою логику, должно быть место для кругового перенаправления. Если вы используете обратный прокси-сервер, проверьте, правильно ли HttpContext получает статус Https

0 голосов
/ 25 апреля 2018

Вы установили свой проход как http, а не https.Apache здесь работает в качестве обратного прокси-сервера, поэтому он просто перенаправляет запрос на ваш промежуточный сервер (-ы), который он всегда будет выполнять через http, в зависимости от вашей конфигурации.Затем, поскольку приложение ASP.NET Core настроено на использование HTTPS, оно перенаправляет, вызывая новый запрос на Apache, который затем перенаправляет снова через http.

Long иКороче говоря, вам нужно пройти до https, а не http.Кроме того, вы можете удалить требование HTTPS-only из вашего приложения ASP.NET Core и вместо этого принудительно установить HTTPS в Apache.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...