Sdílet prostřednictvím


YARP HTTPS & TLS

Https (HTTP přes šifrovaná připojení TLS) je standardní způsob, jak provádět požadavky HTTP na internetu z důvodů zabezpečení, integrity a ochrany osobních údajů. Při použití reverzního proxy serveru, jako je YARP, je potřeba vzít v úvahu několik aspektů HTTPS/TLS.

Ukončení protokolu TLS

YARP je proxy server úrovně 7, což znamená, že proxy server plně dešifruje příchozí připojení HTTPS/TLS, aby mohl zpracovávat a předávat požadavky HTTP. To se běžně označuje jako ukončení protokolu TLS. Odchozí připojení k cílovým umístěním můžou nebo nemusí být šifrovaná v závislosti na zadané konfiguraci.

Tunelové propojení TLS (CONNECT)

Tunelování TLS pomocí metody CONNECT je funkce používaná k proxy žádostem bez jejich dešifrování. Toto není podporováno YARP a neexistují žádné plány jej přidat.

Konfigurace příchozích připojení

YARP může běžet na všech serverech ASP.NET Core a konfigurace HTTPS/TLS pro příchozí připojení je specifická pro každý server. Podrobnosti o konfiguraci najdete v dokumentaci k Kestrel, IIS a http.sys.

Pokročilé filtry TLS s Kestrel

Kestrel podporuje zachycování příchozích připojení před metodou handshake protokolu TLS. YARP obsahuje rozhraní API TlsFrameHelper, které dokáže analyzovat nezpracovanou výměnu přístupových údajů protokolu TLS a umožňuje shromažďovat vlastní telemetrii nebo okamžitě odmítnout připojení. Tato rozhraní API nemohou upravit metodu handshake protokolu TLS ani dešifrovat datový proud. Podívejte se na příklad .

Konfigurace odchozích připojení

Pokud chcete povolit šifrování TLS při komunikaci s cílem, zadejte cílovou adresu jako https jako "https://destinationHost". Příklady najdete v dokumentaci ke konfiguraci .

Název hostitele zadaný v cílové adrese se použije pro metodu handshake protokolu TLS ve výchozím nastavení, včetně ověření SNI a certifikátu serveru. Pokud je povolené proxy původní hlavička hostitele, použije se tato hodnota pro metodu handshake protokolu TLS. Pokud je potřeba použít vlastní hodnotu hostitele, použijte k nastavení hlavičky hostitele transformaci RequestHeader.

Odchozí připojení k cílům jsou zpracovávána pomocí HttpClient/SocketsHttpHandler. Pro každý cluster je možné nakonfigurovat jinou instanci a nastavení. Některá nastavení jsou k dispozici v konfiguračním modelu, zatímco jiná je možné nakonfigurovat pouze v kódu. Podrobnosti najdete v dokumentaci k HttpClient.

Certifikáty cílového serveru musí být důvěryhodné proxy serverem nebo je potřeba použít vlastní ověření prostřednictvím konfigurace HttpClient.