Конечная точка обнаружения сервера идентификации 4, показывающая Http-ссылки вместо Https, хотя доступ осуществляется по протоколу Https

#asp.net-core #nginx #amazon-elastic-beanstalk #identityserver4 #amazon-elb

Вопрос:

У меня есть веб-приложение .net core 3.1 с сервером идентификации 4, которое работает с обратным прокси-сервером Nginx. и балансировщик нагрузки перед https. При локальном доступе конечная точка обнаружения показывает https, но при развертывании конечные точки показывают http вместо https при доступе с конечной точкой https с действительным сертификатом и надлежащим dns.

попытался добавить заголовки x-forward также как в коде, так и в конфигурации nginx.

Комментарии:

1. Как вы настроили сервер идентификации? Опубликуйте соответствующие разделы Startup.cs и appsettings.json , если это настроено оттуда.

2. Кроме того, где вы развернули код?

Ответ №1:

В нашей реализации хоста Identityserver мы используем следующее промежуточное программное обеспечение:

  app.Use((context, next) =>
 {
    if (Environment.GetEnvironmentVariable("SSL_OFFLOAD") == "true")
        context.Request.Scheme = "https";
    return next();
 });
 

Близко к вершине

 Configure(IApplicationBuilder app, IWebHostEnvironment env)
 

Где SSL_OFFLOAD просто пользовательская переменная среды, введенная в docker service create .
Отлично работает в течение многих лет.