미들웨어: 명확하지 않은 HTTPS 포트가 지정된 경우 HTTPS 리디렉션 미들웨어가 예외를 발생시킵니다

ASP.NET Core 6.0에서 HTTPS 리디렉션 미들웨어는 서버 구성에서 여러 HTTPS 포트를 찾을 때 형식 InvalidOperationException 의 예외를 throw합니다. 예외의 메시지에는 "IServerAddressesFeature에서 https 포트를 확인할 수 없습니다. 여러 값이 발견되었습니다. HttpsRedirectionOptions.HttpsPort에서 원하는 포트를 명시적으로 설정합니다."

자세한 내용은 GitHub 이슈 dotnet/aspnetcore#29222를 참조하세요.

도입된 버전

ASP.NET Core 6.0

기존 동작

HTTPS 리디렉션 미들웨어가 포트로 명시적으로 구성되지 않은 경우 첫 번째 요청 중에 검색 IServerAddressesFeature 하여 리디렉션할 HTTPS 포트를 확인합니다.

HTTPS 포트 또는 여러 고유 포트가 없는 경우 어떤 포트를 사용해야 하는지 불분명합니다. 미들웨어는 경고를 기록하고 자체를 사용하지 않도록 설정합니다. HTTP 요청은 정상적으로 처리됩니다.

새 동작

HTTPS 리디렉션 미들웨어가 포트로 명시적으로 구성되지 않은 경우 첫 번째 요청 중에 검색 IServerAddressesFeature 하여 리디렉션할 HTTPS 포트를 확인합니다.

HTTPS 포트가 없으면 미들웨어는 여전히 경고를 기록하고 자체를 사용하지 않도록 설정합니다. HTTP 요청은 정상적으로 처리됩니다. 이 동작은 다음을 지원합니다.

  • HTTPS가 없는 개발 시나리오.
  • 서버에 도달하기 전에 TLS가 종료되는 호스트된 시나리오입니다.

고유한 포트가 여러 개 있는 경우 어떤 포트를 사용해야 하는지 불분명합니다. 미들웨어가 예외를 발생시키고 HTTP 요청을 실패로 처리합니다.

변경 이유

이 변경으로 인해 HTTPS를 사용할 수 있는 것으로 알려진 경우 암호화되지 않은 HTTP 연결을 통해 잠재적으로 중요한 데이터가 처리되지 않습니다.

서버에 여러 개의 고유한 HTTPS 포트가 있는 경우 HTTPS 리디렉션을 사용하도록 설정하려면 구성에서 하나의 포트를 지정해야 합니다. 자세한 내용은 포트 구성을 참조하세요.

앱에서 HTTPS 리디렉션 미들웨어가 필요하지 않은 경우 Startup.cs에서 UseHttpsRedirection를 제거하세요.

올바른 HTTPS 포트를 동적으로 선택해야 하는 경우 GitHub 문제 dotnet/aspnetcore#21291에 피드백을 제공합니다.

영향을 받는 API

HttpsPolicyBuilderExtensions.UseHttpsRedirection