A TLS megszüntetésének és végpontok közötti TLS-nek az Application Gateway használatával történő áttekintése

A Transport Layer Security (TLS), korábbi nevén Secure Sockets Layer (SSL) a webkiszolgáló és a böngésző közötti titkosított kapcsolat létrehozására szolgáló szabványos biztonsági technológia. Ez a hivatkozás biztosítja, hogy a webkiszolgáló és a böngészők között átadott összes adat privát és titkosított maradjon. Az Application Gateway támogatja a TLS-lezárásokat az átjárón, valamint a végpontok közötti TLS-titkosítást is.

TLS termination

Az Application Gateway támogatja az átjáró TLS-leállítását, amely után a forgalom általában titkosítatlanul áramlik a háttérkiszolgálókra. A TLS-leállítás számos előnnyel jár az Application Gatewayen:

  • Jobb teljesítmény – A TLS-visszafejtés során a legnagyobb teljesítménycsökkenés a kezdeti kézfogás. A teljesítmény javítása érdekében a visszafejtést végző kiszolgáló gyorsítótárazza a TLS-munkamenet azonosítóit, és kezeli a TLS-munkamenetjegyeket. Ha ez az Application Gatewayen történik, az ugyanazon ügyféltől érkező összes kérés használhatja a gyorsítótárazott értékeket. Ha a háttérkiszolgálókon történik, akkor minden alkalommal, amikor az ügyfél kérései egy másik kiszolgálóra kerülnek, az ügyfélnek újra meg kell adnia a hitelesítést. A TLS-jegyek használata segíthet a probléma megoldásában, de nem minden ügyfél támogatja őket, és nehéz lehet konfigurálni és kezelni őket.
  • A háttérkiszolgálók jobb kihasználtsága – az SSL/TLS-feldolgozás nagyon processzorigényes, és a kulcsméretek növekedésével egyre intenzívebbé válik. Ha eltávolítja ezt a munkát a háttérkiszolgálókról, akkor a leghatékonyabb tartalmakra összpontosíthatnak.
  • Intelligens útválasztás – A forgalom visszafejtésével az application gateway hozzáfér a kérelem tartalmához, például fejlécekhez, URI-khoz stb., és ezeket az adatokat felhasználhatja a kérések irányításához.
  • Tanúsítványkezelés – A tanúsítványokat csak az Application Gatewayen kell megvásárolni és telepíteni, nem pedig az összes háttérkiszolgálón. Ezzel időt és pénzt is megtakaríthat.

A TLS-megszakítás konfigurálásához TLS-/SSL-tanúsítványt kell hozzáadni a figyelőhöz. Ez lehetővé teszi, hogy az Application Gateway visszafejtse a bejövő forgalmat, és titkosítsa az ügyfél válaszforgalmát. Az Application Gatewaynek biztosított tanúsítványnak személyes adatcsere (PFX) formátumban kell lennie, amely tartalmazza a titkos és a nyilvános kulcsokat is. A támogatott PFX-algoritmusok a PFXImportCertStore függvényben találhatók.

Fontos

A figyelő tanúsítványához fel kell tölteni a teljes tanúsítványláncot (a hitelesítésszolgáltató főtanúsítványát, a közteseket és a levéltanúsítványt) a megbízhatósági lánc létrehozásához.

Megjegyzés:

Az Application Gateway nem biztosít semmilyen képességet új tanúsítvány létrehozására vagy tanúsítványkérelem hitelesítésszolgáltatónak való küldésére.

A TLS-kapcsolat működéséhez meg kell győződnie arról, hogy a TLS/SSL-tanúsítvány megfelel a következő feltételeknek:

  • Az aktuális dátum és idő a tanúsítvány "Érvényesség kezdete" és "Érvényesség" dátumtartományán belül van.
  • A tanúsítvány „köznapi neve” (Common Name, CN) megegyezik a kérésben szereplő gazdafejlécével. Ha például az ügyfél böngészője a(z) https://www.contoso.com/ címre küldi a kérést, a köznapi névnek is a(z) www.contoso.com címnek kell lennie.

Ha a háttértanúsítvány köznapi nevével (CN) kapcsolatos hibák merülnek fel, tekintse meg a hibaelhárítási útmutatót.

TLS-leállításhoz támogatott tanúsítványok

Az Application Gateway a következő tanúsítványtípusokat támogatja:

  • Hitelesítésszolgáltatói tanúsítvány: A hitelesítésszolgáltatói tanúsítvány egy hitelesítésszolgáltató (CA) által kibocsátott digitális tanúsítvány
  • EV (kiterjesztett érvényesítési) tanúsítvány: Az EV-tanúsítvány olyan tanúsítvány, amely megfelel az iparági szabványtanúsítványokra vonatkozó irányelveknek. Ezzel zöldre váltja a böngésző keresősávját, és közzéteszi a cég nevét is.
  • Helyettesítő tanúsítvány: Ez a tanúsítvány tetszőleges számú altartományt támogat a *.site.com alapján, ahol az altartomány lecseréli a *-t. Ez azonban nem támogatja a site.com, így ha a felhasználók a vezető "www" beírása nélkül férnek hozzá a webhelyhez, a helyettesítő tanúsítvány nem fedi le ezt.
  • Önaláírt tanúsítványok: Az ügyfélböngészők nem bíznak ezekben a tanúsítványokban, és figyelmeztetik a felhasználót, hogy a virtuális szolgáltatás tanúsítványa nem része a megbízhatósági láncnak. Az önaláírt tanúsítványok olyan teszteléshez vagy környezetekhez használhatók, ahol a rendszergazdák felügyelik az ügyfeleket, és biztonságosan megkerülhetik a böngésző biztonsági riasztásait. Az éles számítási feladatok soha nem használhatnak önaláírt tanúsítványokat.

További információ: TLS-megszakítás konfigurálása az Application Gateway használatával.

A tanúsítvány mérete

Ellenőrizze az Application Gateway korlátai szakaszt, hogy megtudja, a TLS/SSL-tanúsítvány maximális mérete támogatott.

Végpontok közötti TLS-titkosítás

Előfordulhat, hogy nem szeretne titkosítatlan kommunikációt a háttérkiszolgálókkal. Előfordulhat, hogy biztonsági követelményekkel, megfelelőségi követelményekkel rendelkezik, vagy az alkalmazás csak biztonságos kapcsolatot fogad el. Azure-alkalmazás átjáró végpontok közötti TLS-titkosítással rendelkezik, hogy támogassa ezeket a követelményeket.

A végpontok közötti TLS lehetővé teszi a bizalmas adatok titkosítását és biztonságos továbbítását a háttérrendszerbe az Application Gateway 7. rétegbeli terheléselosztási funkcióinak használata során. Ezek a funkciók közé tartozik a cookie-alapú munkamenet-affinitás, az URL-alapú útválasztás, a webhelyeken alapuló útválasztás támogatása, az X-Forwarded-* fejlécek átírásának vagy beszúrásának lehetősége stb.

Ha teljes körű TLS kommunikációs móddal van konfigurálva, az Application Gateway leállítja a TLS-munkameneteket az átjárón, és visszafejti a felhasználói forgalmat. Ezután alkalmazza a konfigurált szabályokat, hogy kiválassza a megfelelő háttérkészletpéldányt, ahová irányítható a forgalom. Az Application Gateway ezután új TLS-kapcsolatot kezdeményez a háttérkiszolgálóval, és újra titkosítja az adatokat a háttérkiszolgáló nyilvános kulcsú tanúsítványával, mielőtt továbbítanák a kérést a háttérrendszernek. A webkiszolgáló esetleges válasza ugyanilyen módon jut el a végfelhasználóhoz. A végpontok közötti TLS engedélyezve van a háttérbeli HTTP-beállítás protokollbeállításának HTTPS értékre állításával, amelyet a rendszer ezután alkalmaz egy háttérkészletre.

Az Application Gateway 1-es verziójú termékváltozat-átjáróiban a TLS-szabályzat csak az előtérbeli forgalomra és a definiált rejtjelekre alkalmazza az előtér- és háttérbeli célokat is. Az Application Gateway v2 termékváltozat-átjáróiban a TLS-szabályzat csak az előtérbeli forgalomra vonatkozik, a háttérbeli TLS-kapcsolatok mindig A TLS 1.0-ról TLS 1.2-verzióra lesznek egyeztetve.

Az Application Gateway csak azokkal a háttérkiszolgálókkal kommunikál, amelyek engedélyezik a tanúsítványukat az Application Gatewayben, vagy amelyek tanúsítványait ismert hitelesítésszolgáltatói aláírással rendelkeznek, és a tanúsítvány CN-címe megegyezik a HTTP háttérrendszer beállításaiban szereplő gazdagép nevével. Ezek közé tartoznak a megbízható Azure-szolgáltatások, például a Azure-alkalmazás Service/Web Apps és az Azure API Management.

Ha a háttérkészletben lévő tagok tanúsítványait nem ismerik ismert hitelesítésszolgáltatók, akkor a teljes körű TLS-t engedélyező háttérkészlet minden példányát tanúsítványsal kell konfigurálni a biztonságos kommunikáció érdekében. A tanúsítvány hozzáadása biztosítja, hogy az Application Gateway csak ismert háttérpéldányokkal kommunikáljon. Ez tovább védi a végpontok közötti kommunikációt.

Megjegyzés:

A háttérkiszolgálók hitelesítéséhez a háttérbeli HTTP-beállításhoz hozzáadott tanúsítvány lehet ugyanaz, mint az Application Gateway TLS-leállítása figyelőhöz hozzáadott tanúsítványa, vagy más a fokozott biztonság érdekében.

end to end TLS scenario

Ebben a példában a TLS1.2-t használó kérések a pool1 háttérkiszolgálóihoz lesznek irányítva végpontok közötti TLS használatával.

Végpontok közötti TLS és tanúsítványok listázásának engedélyezése

Az Application Gateway csak azokkal a háttérkiszolgálókkal kommunikál, amelyek engedélyezik a tanúsítványukat az Application Gatewayben, vagy amelyek tanúsítványait ismert hitelesítésszolgáltatói aláírással rendelkeznek, és a tanúsítvány CN-címe megegyezik a HTTP háttérrendszer beállításaiban szereplő gazdagép nevével. A végpontok közötti TLS beállítási folyamatában van néhány különbség a használt Application Gateway-verzió tekintetében. A következő szakasz egyenként ismerteti a verziókat.

Végpontok közötti TLS az 1-s verziójú termékváltozattal

Ha engedélyezni szeretné a végpontok közötti TLS-t a háttérkiszolgálókkal, valamint ahhoz, hogy az Application Gateway átirányítsa a kéréseket hozzájuk, az állapotteszteknek sikeresnek kell lenniük, és kifogástalan választ kell adniuk.

HTTPS-állapottesztek esetén az Application Gateway v1 termékváltozata a http-beállításokba feltöltendő hitelesítési tanúsítvány (a háttérkiszolgáló tanúsítványának nyilvános kulcsa és nem a főtanúsítvány) pontos egyezését használja.

Ezután csak az ismert és engedélyezett háttérrendszerekkel létesített kapcsolatok engedélyezettek. A fennmaradó háttérrendszereket az állapottesztek nem megfelelőnek tekintik. Az önaláírt tanúsítványok csupán tesztelési célokat szolgálnak, és nem ajánlottak éles számítási feladatokra. Az ilyen tanúsítványokat a használatuk előtt engedélyezni kell az Application Gatewayben az előző lépésekben leírtak szerint.

Megjegyzés:

A megbízható Azure-szolgáltatásokhoz, például Azure-alkalmazás szolgáltatáshoz nincs szükség hitelesítésre és megbízható főtanúsítvány-beállításra. Alapértelmezés szerint megbízhatónak minősülnek.

Végpontok közötti TLS a v2 termékváltozattal

A hitelesítési tanúsítványok elavultak, és az Application Gateway v2 termékváltozatában megbízható főtanúsítványok váltották fel. A hitelesítési tanúsítványokhoz hasonlóan működnek, néhány fő különbséggel:

  • A jól ismert hitelesítésszolgáltatók által aláírt tanúsítványok, amelyek CN-értéke megegyezik a HTTP háttérrendszer beállításaiban szereplő állomásnévvel, nem igényelnek további lépést a végpontok közötti TLS működéséhez.

    Ha például a háttértanúsítványokat egy jól ismert hitelesítésszolgáltató állítja ki, és cn of contoso.com, és a háttérbeli HTTP-beállítás gazdagépmezője is contoso.com, akkor nincs szükség további lépésekre. Beállíthatja a háttérbeli HTTP-beállítási protokollt HTTPS-ra, és az állapotadat-mintavétel és az adatelérési út is engedélyezve lenne. Ha háttérrendszerként Azure-alkalmazás szolgáltatást vagy más Azure-webszolgáltatásokat használ, akkor ezek is implicit módon megbízhatók, és a teljes körű TLS-hez nincs szükség további lépésekre.

Megjegyzés:

Ahhoz, hogy egy TLS/SSL-tanúsítvány megbízható legyen, a háttérkiszolgáló tanúsítványát egy jól ismert hitelesítésszolgáltatónak kell kiállítania. Ha a tanúsítványt nem megbízható hitelesítésszolgáltató adta ki, az Application Gateway ezután ellenőrzi, hogy a kiállító hitelesítésszolgáltató tanúsítványát megbízható hitelesítésszolgáltató adta-e ki, és így tovább, amíg nem talál megbízható hitelesítésszolgáltatót (ekkor megbízható, biztonságos kapcsolat jön létre), vagy nem található megbízható hitelesítésszolgáltató (ekkor az Application Gateway nem jelöli meg a háttérrendszer kifogástalan állapotát). Ezért javasoljuk, hogy a háttérkiszolgáló tanúsítványa tartalmazza a legfelső szintű és a köztes hitelesítésszolgáltatókat is.

  • Ha a háttérkiszolgáló tanúsítványa önaláírt vagy ismeretlen hitelesítésszolgáltató/közvetítő által van aláírva, akkor az Application Gateway 2-es verziójában a végpontok közötti TLS engedélyezéséhez megbízható főtanúsítványt kell feltölteni. Az Application Gateway csak olyan háttérrendszerekkel kommunikál, amelyek kiszolgálói tanúsítványának főtanúsítványa megegyezik a készlethez társított háttérrendszerbeli HTTP-beállítás megbízható főtanúsítványainak egyikével.

  • A főtanúsítvány-egyezés mellett az Application Gateway v2 is ellenőrzi, hogy a háttérrendszer http-beállításában megadott gazdagép-beállítás megegyezik-e a háttérkiszolgáló TLS/SSL-tanúsítványa által bemutatott köznapi névvel (CN). Amikor TLS-kapcsolatot próbál létesíteni a háttérrendszerrel, az Application Gateway v2 a kiszolgálónév-jelzés (SNI) bővítményt a háttér http-beállításában megadott gazdagépre állítja.

  • Ha a háttérrendszerbeli HTTP-beállítás Gazdagép mezője helyett a háttérbeli tároló állomásneve helyett választja ki a gazdagépnevet, akkor az SNI-fejlécnek mindig a háttérkészlet teljes tartományneve lesz beállítva, és a háttérkiszolgáló TLS/SSL-tanúsítványán lévő CN-nek meg kell egyeznie az FQDN-ével. Ebben a forgatókönyvben a háttérkészlet ip-címekkel rendelkező tagjai nem támogatottak.

  • A főtanúsítvány egy base64 kódolású főtanúsítvány a háttérkiszolgáló tanúsítványaiból.

SNI-különbségek a v1 és a v2 termékváltozatban

Ahogy korábban említettük, az Application Gateway leállítja a TLS-forgalmat az ügyféltől az Application Gateway-figyelőnél (nevezzük előtér-kapcsolatnak), visszafejti a forgalmat, alkalmazza a szükséges szabályokat annak a háttérkiszolgálónak a meghatározásához, amelyre a kérést továbbítani kell, és létrehoz egy új TLS-munkamenetet a háttérkiszolgálóval (nevezzük háttérkapcsolatnak).

Az alábbi táblázatok a V1 és a v2 termékváltozat közötti SNI-különbségeket ismertetik az előtér- és háttérkapcsolatok tekintetében.

Előtérbeli TLS-kapcsolat (ügyfél és Application Gateway)

Eset v1 v2
Ha az ügyfél SNI-fejlécet ad meg, és az összes többhelyes figyelő engedélyezve van az "SNI megkövetelése" jelzővel Visszaadja a megfelelő tanúsítványt, és ha a hely nem létezik (a server_name szerint), akkor a kapcsolat alaphelyzetbe áll. Megfelelő tanúsítványt ad vissza, ha elérhető, ellenkező esetben az első HTTPS-figyelő tanúsítványát adja vissza a HTTPS-figyelőkhöz társított kérés-útválasztási szabályok által megadott sorrendnek megfelelően.
Ha az ügyfél nem ad meg SNI-fejlécet, és ha az összes többhelyes fejléc engedélyezve van az "SNI megkövetelése" beállítással A kapcsolat alaphelyzetbe állítása Az első HTTPS-figyelő tanúsítványát adja vissza a HTTPS-figyelőkhöz társított kérés-útválasztási szabályok által megadott sorrendnek megfelelően
Ha az ügyfél nem adja meg az SNI-fejlécet, és egy alapszintű figyelő van konfigurálva egy tanúsítvánnyal Az alapszintű figyelőben konfigurált tanúsítványt adja vissza az ügyfélnek (alapértelmezett vagy tartalék tanúsítvány) Az alapszintű figyelőben konfigurált tanúsítványt adja vissza

Tipp.

Az SNI-jelző konfigurálható PowerShell-lel vagy ARM-sablon használatával. További információ: RequireServerNameIndication és quickstart: Direct web traffic with Azure-alkalmazás Gateway – ARM template.

Háttérbeli TLS-kapcsolat (application gateway to the backend server)

Mintavételi forgalom esetén

Eset v1 v2
SNI (server_name) fejléc a TLS kézfogás során teljes tartománynévként Állítsa be teljes tartománynévként a háttérkészletből. Az RFC 6066-nak megfelelően az SNI-gazdagépnév nem engedélyezi a literális IPv4- és IPv6-címeket.
Megjegyzés: A háttérkészlet teljes tartománynevét fel kell oldania a DNS-nek a háttérkiszolgáló IP-címére (nyilvános vagy privát)
Az SNI-fejléc (server_name) állomásnévként van beállítva a HTTP-beállításokhoz csatolt egyéni mintavételből (ha konfigurálva van), ellenkező esetben a HTTP-beállításokban említett gazdagépnévből, ellenkező esetben a háttérkészletben említett teljes tartománynévből. Az elsőbbségi sorrend az egyéni mintavételi > HTTP-beállítások > háttérkészlete.
Megjegyzés: Ha a HTTP-beállításokban és az egyéni mintavételben konfigurált gazdagépnevek eltérőek, akkor az elsőbbségi sorrend szerint az SNI lesz az egyéni mintavétel állomásneve.
Ha a háttérkészlet címe EGY IP-cím (v1), vagy ha az egyéni mintavételi állomásnév IP-címként van konfigurálva (v2) Az SNI (server_name) nem lesz beállítva.
Megjegyzés: Ebben az esetben a háttérkiszolgálónak képesnek kell lennie egy alapértelmezett/tartalék tanúsítvány visszaadására, és ezt engedélyeznie kell a hitelesítési tanúsítvány HTTP-beállításai között. Ha nincs alapértelmezett/tartalék tanúsítvány konfigurálva a háttérkiszolgálón, és az SNI várható, a kiszolgáló alaphelyzetbe állíthatja a kapcsolatot, és mintavételi hibákhoz vezethet
A korábban említett sorrendben, ha az IP-címük állomásnévként van megadva, akkor az SNI nem lesz az RFC 6066-nak megfelelően beállítva.
Megjegyzés: Az SNI nem lesz beállítva a v2-mintavételekben sem, ha nincs egyéni mintavétel konfigurálva, és nincs gazdanév beállítva a HTTP-beállításokon vagy a háttérkészleten

Megjegyzés:

Ha nincs konfigurálva egyéni mintavétel, akkor az Application Gateway egy alapértelmezett mintavételt küld ebben a formátumban – <protokoll>://127.0.0.1:<port>/. Az alapértelmezett HTTPS-mintavétel esetében például a rendszer a következőként https://127.0.0.1:443/küldi el: . Vegye figyelembe, hogy az itt említett 127.0.0.1 csak HTTP-gazdagépfejlécként használható, és az RFC 6066 szerint nem lesz SNI-fejlécként használva. Az állapotadat-mintavétel hibáival kapcsolatos további információkért tekintse meg a háttérrendszer állapotával kapcsolatos hibaelhárítási útmutatót.

Élő forgalom esetén

Eset v1 v2
SNI (server_name) fejléc a TLS kézfogás során teljes tartománynévként Állítsa be teljes tartománynévként a háttérkészletből. Az RFC 6066-nak megfelelően az SNI-gazdagépnév nem engedélyezi a literális IPv4- és IPv6-címeket.
Megjegyzés: A háttérkészlet teljes tartománynevét fel kell oldania a DNS-nek a háttérkiszolgáló IP-címére (nyilvános vagy privát)
Az SNI-fejléc (server_name) állomásnévként van beállítva a HTTP-beállításokból, ellenkező esetben ha a PickHostnameFromBackendAddress beállítás van kiválasztva, vagy ha nincs megadva gazdagépnév, akkor a háttérkészlet konfigurációjában teljes tartománynévként lesz beállítva
Ha a háttérkészlet címe IP-cím, vagy a gazdagépnév nincs beállítva a HTTP-beállításokban Az SNI nem lesz RFC 6066-ra állítva, ha a háttérkészlet-bejegyzés nem teljes tartománynév Az SNI állomásnévként lesz beállítva az ügyfél bemeneti teljes tartományneve alapján, és a háttértanúsítvány CN-jének meg kell egyeznie ezzel a gazdagépnévvel.
A http-Gépház nem adja meg a gazdagépnevet, de egy teljes tartománynév van megadva célként egy háttérkészlet-tag számára Az SNI állomásnévként lesz beállítva az ügyfél bemeneti teljes tartományneve alapján, és a háttértanúsítvány CN-jének meg kell egyeznie ezzel a gazdagépnévvel. Az SNI állomásnévként lesz beállítva az ügyfél bemeneti teljes tartományneve alapján, és a háttértanúsítvány CN-jének meg kell egyeznie ezzel a gazdagépnévvel.

Következő lépések

Miután megismerte a végpontok közötti TLS-t, lépjen a Teljes körű TLS konfigurálásához az Application Gateway és a PowerShell használatával egy alkalmazásátjáró teljes körű TLS használatával történő létrehozásához.