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.
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
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.