YARP Docsv2.3
Документация/Сигурност/HTTPS и TLS

HTTPS и TLS

HTTPS (HTTP през криптирани TLS връзки) е стандартният начин за извършване на HTTP заявки в

HTTPS (HTTP през криптирани TLS връзки) е стандартният начин за извършване на HTTP заявки в интернет по причини, свързани със сигурността, целостта и поверителността. Съществуват няколко особености относно HTTPS/TLS, които трябва да имате предвид при използване на обратен прокси сървър като YARP.

Прекратяване на TLS

YARP е HTTP прокси сървър от ниво 7, което означава, че входящите HTTPS/TLS връзки се дешифрират напълно от прокси сървъра, за да може той да обработи и препрати HTTP заявките. Това е известно като прекратяване на TLS (TLS termination). Изходящите връзки към дестинацията(ите) може да бъдат криптирани или не, в зависимост от предоставената конфигурация.

TLS тунелиране (CONNECT)

TLS тунелирането чрез метода CONNECT е функция, използвана за проксиране на заявки без тяхното дешифриране. Тя не се поддържа от YARP и няма планове за добавянето ѝ.

Конфигуриране на входящите връзки

YARP може да работи върху всички сървъри на ASP.NET Core, а конфигурирането на HTTPS/TLS за входящите връзки е специфично за конкретния сървър. Прегледайте документацията за Kestrel, IIS и Http.Sys за подробности относно конфигурацията.

Разширени TLS филтри с Kestrel

Kestrel поддържа прихващане на входящите връзки преди установяването на TLS връзката (handshake). YARP включва API-то TlsFrameHelper, което може да анализира необработеното установяване на TLS връзката и да ви позволи да събирате персонализирана телеметрия или незабавно да отхвърляте връзки. Тези API-та не могат да променят установяването на TLS връзката, нито да дешифрират потока от данни. Вижте този пример.

Конфигуриране на изходящите връзки

За да активирате TLS криптиране при комуникация с дестинация, задайте адреса на дестинацията като https, например "https://destinationHost". Вижте документацията за конфигурация за примери.

Хост името, зададено в адреса на дестинацията, ще се използва за установяването на TLS връзката по

подразбиране, включително за SNI и валидиране на сертификата на сървъра. Ако е активирано проксирането на оригиналната заглавна част host,

тази стойност ще се използва вместо това за установяването на TLS връзката. Ако е необходимо да се използва

персонализирана стойност за host, използвайте трансформацията RequestHeader, за да зададете заглавната част host.

Изходящите връзки към дестинациите се обработват от HttpClient/SocketsHttpHandler. За всеки клъстер може да се конфигурира отделен екземпляр и настройки. Някои настройки са достъпни в модела за конфигурация, докато други могат да бъдат конфигурирани само в код. Вижте документацията за HttpClient за подробности.

Сертификатите на сървърите-дестинации трябва да бъдат доверени от прокси сървъра, или трябва да се приложи персонализирано валидиране чрез конфигурацията на HttpClient.

Бележка

Тази статия е създадена от автора с помощта на AI. Научете повече

Адаптирано от Microsoft Learn , лицензирано под CC BY 4.0 .