Aracılığıyla paylaş


Ara Yazılım: HTTPS Yeniden Yönlendirme Ara Yazılımı belirsiz HTTPS bağlantı noktalarında özel durum oluşturur

ASP.NET Core 6.0'da HTTPS Yeniden Yönlendirme Ara Yazılımı, sunucu yapılandırmasında birden çok HTTPS bağlantı noktası bulduğunda tür InvalidOperationException özel durumu oluşturur. Özel durumun iletisi "IServerAddressesFeature'dan https bağlantı noktası belirlenemiyor, birden çok değer bulundu. httpsRedirectionOptions.HttpsPort'ta istenen bağlantı noktasını açıkça ayarlayın."

Tartışma için bkz. GitHub sorunu dotnet/aspnetcore#29222.

Sürüm kullanıma sunulmuştur

ASP.NET Core 6.0

Eski davranış

HTTPS Yeniden Yönlendirme Ara Yazılımı bir bağlantı noktasıyla açıkça yapılandırılmadığında, yeniden yönlendirmesi gereken HTTPS bağlantı noktasını belirlemek için ilk istek sırasında arama IServerAddressesFeature gerçekleştirir.

HTTPS bağlantı noktası veya birden çok ayrı bağlantı noktası yoksa, hangi bağlantı noktasının kullanılacağı net değildir. Ara yazılım bir uyarı kaydeder ve kendisini devre dışı bırakır. HTTP istekleri normal şekilde işlenir.

Yeni davranış

HTTPS Yeniden Yönlendirme Ara Yazılımı bir bağlantı noktasıyla açıkça yapılandırılmadığında, yeniden yönlendirmesi gereken HTTPS bağlantı noktasını belirlemek için ilk istek sırasında arama IServerAddressesFeature gerçekleştirir.

HTTPS bağlantı noktası yoksa, ara yazılım yine de bir uyarı kaydeder ve kendisini devre dışı bırakır. HTTP istekleri normal şekilde işlenir. Bu davranış şunu destekler:

  • HTTPS olmadan geliştirme senaryoları.
  • Sunucuya ulaşmadan önce TLS'nin sonlandırıldığı barındırılan senaryolar.

Birden çok farklı bağlantı noktası varsa hangi bağlantı noktasının kullanılacağı belirsizdir. Ara yazılım bir özel durum oluşturur ve HTTP isteğini başarısız olur.

Değişiklik nedeni

Bu değişiklik, HTTPS'nin kullanılabilir olduğu bilindiğinde, gizli olabilecek verilerin şifrelenmemiş HTTP bağlantıları üzerinden sunulmasını engeller.

Sunucuda birden çok ayrı HTTPS bağlantı noktası olduğunda HTTPS yeniden yönlendirmesini etkinleştirmek için yapılandırmada bir bağlantı noktası belirtmeniz gerekir. Daha fazla bilgi için bkz . Bağlantı noktası yapılandırması.

Uygulamanızda HTTPS Yeniden Yönlendirme Ara Yazılımına ihtiyacınız yoksa Startup.cs'den kaldırınUseHttpsRedirection.

Doğru HTTPS bağlantı noktasını dinamik olarak seçmeniz gerekiyorsa GitHub sorunu dotnet/aspnetcore#21291 ile ilgili geri bildirim sağlayın.

Etkilenen API’ler

HttpsPolicyBuilderExtensions.UseHttpsRedirection