Middleware: middleware de redirecionamento de HTTPS gera exceção em portas HTTPS ambíguas
No ASP.NET Core 6.0, o Middleware de redirecionamento de HTTPS gera uma exceção de tipo InvalidOperationException quando encontra várias portas HTTPS na configuração do servidor. A mensagem da exceção contém o texto "Não é possível determinar a porta https de IServerAddressesFeature, vários valores foram encontrados. Defina a porta desejada explicitamente em HttpsRedirectionOptions.HttpsPort."
Para ver a discussão, confira o problema do GitHub dotnet/aspnetcore#29222.
Versão introduzida
ASP.NET Core 6.0
Comportamento antigo
Quando o Middleware de redirecionamento de HTTPS não estiver explicitamente configurado com uma porta, ele pesquisará IServerAddressesFeature durante a primeira solicitação para determinar a porta HTTPS para a qual deverá redirecionar.
Se não houver portas HTTPS ou várias portas distintas, não estará claro qual porta usar. O middleware registrará um aviso e se desabilitará. As solicitações HTTP são processadas normalmente.
Novo comportamento
Quando o Middleware de redirecionamento de HTTPS não estiver explicitamente configurado com uma porta, ele pesquisará IServerAddressesFeature
durante a primeira solicitação para determinar a porta HTTPS para a qual deverá redirecionar.
Se não houver portas HTTPS, o middleware ainda registrará um aviso e se desabilitará. As solicitações HTTP são processadas normalmente. Esse comportamento dá suporte a:
- Cenários de desenvolvimento sem HTTPS.
- Cenários hospedados nos quais o TLS é encerrado antes de chegar ao servidor.
Se houver várias portas distintas, não estará claro qual porta usar. O middleware gera uma exceção e falha na solicitação HTTP.
Motivo da alteração
Essa alteração impedirá que os dados potencialmente confidenciais sejam atendidos em conexões HTTP não criptografadas quando o HTTPS estiver disponível.
Ação recomendada
Para habilitar o redirecionamento de HTTPS quando o servidor tiver várias portas HTTPS distintas, será necessário especificar uma porta na configuração. Para obter mais informações, consulte Configuração de porta.
Se o middleware de redirecionamento de HTTPS não for necessário no aplicativo, remova UseHttpsRedirection
de Startup.cs.
Se você precisar selecionar a porta HTTPS correta dinamicamente, forneça os comentários no problema do GitHub dotnet/aspnetcore#21291.
APIs afetadas
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de