Да, это обрабатывает правильный протокол из заголовка X-Forwarded-For для большинства промежуточного программного обеспечения, но, очевидно, не для Rewrite.AddRedirectToHttps. В итоге мне пришлось использовать ваше решение самостоятельно :), но мне пришлось немного его изменить, чтобы не перенаправлять http: / / если заголовок X-Forwarded-Proto отсутствует. Таким образом, моя проверка работоспособности Load Balancer не была перенаправлена ​​на https.

я есть веб-сайт, который правильно запускает HTTPS в моей локальной среде. Когда я загружаю его в AWS, он просто останавливается или перенаправляется навсегда.

Моя установка в AWS - это приложение Elastic Beanstalk, база данных RDS с MS SQL, я добавил балансировщик нагрузки для пересылки запросов HTTPS, и у меня есть сертификат SSL, правильно назначенный для балансировщика нагрузки. Из всего, что я могу сказать, мое приложение работает, фактически Entity Framework запустил и правильно построил мою базу данных в моем экземпляре RDS. Я просто не могу зайти на сайт через интернет.

Я пытался настроить Слушатели разными способами. Если я установлю их так, они просто перенаправят навсегда:

Если я установлю их так, это просто время ожидания:

у меня естькод переадресации порта HTTP / HTTPS по умолчанию в моем файле Startup.cs:

public void ConfigureServices(IServiceCollection services)
{
    // Sets all calls to require HTTPS: https://docs.microsoft.com/en-us/aspnet/core/security/enforcing-ssl
    services.Configure<MvcOptions>(options =>
    {
        options.Filters.Add(new RequireHttpsAttribute());
    });
    ...
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
    // Force all HTTP requests to redirect to HTTPS: https://docs.microsoft.com/en-us/aspnet/core/security/enforcing-ssl
    var options = new RewriteOptions().AddRedirectToHttps();
    app.UseRewriter(options);

    ...

    app.UseForwardedHeaders(new ForwardedHeadersOptions
    {
        ForwardedHeaders = ForwardedHeaders.XForwardedFor |
                            ForwardedHeaders.XForwardedProto
    });
    ...
}

Я потратил на это дни и не могу заставить его работать. Я попытался удалить весь мой код HTTPS, и это не работает. Я пробовал решения кода из блогов, какэто а такжеэто и это тоже не работает. Из того, что я прочитал, балансировщик нагрузки завершает обработку запроса HTTPS, а затем перенаправляет запрос HTTP в мое приложение. Но я не знаю, как правильно справиться с этим, по-прежнему применять HTTPS и перенаправлять HTTP на HTTPS.

Кажется, что это будет что-то, что будет работать из коробки без кучки настроек от меня. Если это не так, я бы подумал, что многие другие уже столкнулись бы с этой проблемой, и в интернете была бы информация об этом. Я скучаю по чему-то маленькому? Потому что я полностью в своем уме.

Если вы можете ответить на это, вы будете моим новым героем.

Ответы на вопрос(3)

Ваш ответ на вопрос