Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Přehled
Azure Application Gateway podporuje kompletní šifrování provozu. Aplikační brána ukončuje připojení TLS/SSL na aplikační bráně. Brána pak použije pravidla směrování na provoz, znovu zašifruje paket a předá paket na příslušný back-endový server na základě definovaných pravidel směrování. Každá odpověď webového serveru prochází ke koncovému uživateli stejným procesem.
Application Gateway podporuje definování vlastních možností protokolu TLS. Podporuje také zakázání následujících verzí protokolu: TLSv1.0, TLSv1.1 a TLSv1.2 a také definování šifrovacích sad, které se mají použít, a pořadí předvoleb. Další informace o konfigurovatelných možnostech protokolu TLS najdete v přehledu zásad PROTOKOLU TLS.
Poznámka:
Protokoly SSL 2.0 a SSL 3.0 jsou ve výchozím nastavení zakázané a nelze je povolit. Jsou považovány za nezabezpečené a nelze je použít se službou Application Gateway.
Scénář
V tomto scénáři se dozvíte, jak vytvořit aplikační bránu pomocí kompletního protokolu TLS s PowerShellem.
Tento scénář bude:
- Vytvořte skupinu prostředků s názvem appgw-rg.
- Vytvořte virtuální síť s názvem appgwvnet s adresní prostorem 10.0.0.0/16.
- Vytvořte dvě podsítě s názvem appgwsubnet a appsubnet.
- Vytvořte malou aplikační bránu podporující kompletní šifrování TLS, které omezuje verze protokolu TLS a šifrovací sady.
Než začnete
Poznámka:
K interakci s Azure doporučujeme použít modul Azure Az PowerShell. Začněte tím, že si projdete téma Instalace Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.
Ke konfiguraci kompletního protokolu TLS se službou Application Gateway se vyžaduje certifikát pro bránu a certifikáty jsou vyžadovány pro back-endové servery. Certifikát brány se používá k odvození symetrického klíče podle specifikace protokolu TLS. Symetrický klíč se pak použije k šifrování a dešifrování provozu odeslaného do brány. Certifikát brány musí být ve formátu PFX (Personal Information Exchange). Tento formát souboru umožňuje exportovat privátní klíč, který služba Application Gateway vyžaduje k šifrování a dešifrování provozu.
Pro koncové šifrování TLS musí být serverová část explicitně povolená aplikační bránou. Nahrajte veřejný certifikát back-endových serverů do aplikační brány. Přidáním certifikátu zajistíte, že aplikační brána komunikuje pouze se známými back-endovými instancemi. Tím se dále zabezpečuje kompletní komunikace.
Proces konfigurace je popsaný v následujících částech.
Vytvořte skupinu prostředků
Tato část vás provede vytvořením skupiny prostředků, která obsahuje aplikační bránu.
Přihlaste se ke svému účtu Azure.
Connect-AzAccountVyberte předplatné, které chcete použít pro tento scénář.
Select-Azsubscription -SubscriptionName "<Subscription name>"Vytvořte skupinu prostředků. (Pokud používáte existující skupinu prostředků, tento krok přeskočte.)
New-AzResourceGroup -Name appgw-rg -Location "West US"
Vytvoření virtuální sítě a podsítě pro službu Application Gateway
Následující příklad vytvoří virtuální síť a dvě podsítě. Jedna podsíť se používá k uložení aplikační brány. Druhá podsíť se používá pro back-endy, které hostují webovou aplikaci.
Přiřaďte rozsah adres pro podsíť, která se má použít pro aplikační bránu.
$gwSubnet = New-AzVirtualNetworkSubnetConfig -Name 'appgwsubnet' -AddressPrefix 10.0.0.0/24Poznámka:
Podsítě nakonfigurované pro aplikační bránu by měly mít správnou velikost. Aplikační bránu je možné nakonfigurovat až pro 10 instancí. Každá instance přebírá jednu IP adresu z podsítě. Příliš malá podsíť může nepříznivě ovlivnit horizontální navýšení kapacity aplikační brány.
Přiřaďte rozsah adres, který se má použít pro back-endový fond adres.
$nicSubnet = New-AzVirtualNetworkSubnetConfig -Name 'appsubnet' -AddressPrefix 10.0.2.0/24Vytvořte virtuální síť s podsítěmi definovanými v předchozích krocích.
$vnet = New-AzvirtualNetwork -Name 'appgwvnet' -ResourceGroupName appgw-rg -Location "West US" -AddressPrefix 10.0.0.0/16 -Subnet $gwSubnet, $nicSubnetNačtěte prostředky virtuální sítě a prostředky podsítě, které se mají použít v následujících krocích.
$vnet = Get-AzvirtualNetwork -Name 'appgwvnet' -ResourceGroupName appgw-rg $gwSubnet = Get-AzVirtualNetworkSubnetConfig -Name 'appgwsubnet' -VirtualNetwork $vnet $nicSubnet = Get-AzVirtualNetworkSubnetConfig -Name 'appsubnet' -VirtualNetwork $vnet
Vytvoření veřejné IP adresy pro konfiguraci front-endu
Vytvořte prostředek veřejné IP adresy, který se použije pro aplikační bránu. Tato veřejná IP adresa se používá v jednom z následujících kroků.
$publicip = New-AzPublicIpAddress -ResourceGroupName appgw-rg -Name 'publicIP01' -Location "West US" -AllocationMethod Dynamic
Důležité
Application Gateway nepodporuje použití veřejné IP adresy vytvořené s definovaným popiskem domény. Podporuje se jenom veřejná IP adresa s dynamicky vytvořeným popiskem domény. Pokud pro aplikační bránu požadujete popisný název DNS, doporučujeme jako alias použít záznam CNAME.
Vytvořte objekt konfigurace aplikační brány
Před vytvořením aplikační brány se nastaví všechny položky konfigurace. Následující kroky vytvoří položky konfigurace potřebné pro prostředek služby Application Gateway.
Vytvořte konfiguraci PROTOKOLU IP služby Application Gateway. Toto nastavení konfiguruje, které podsítě aplikační brána používá. Při spuštění aplikační brány převezme IP adresu z nakonfigurované podsítě a směruje síťový provoz na IP adresy v back-endovém fondu IP adres. Uvědomte si, že každá instance vyžaduje jednu IP adresu.
$gipconfig = New-AzApplicationGatewayIPConfiguration -Name 'gwconfig' -Subnet $gwSubnetVytvořte konfiguraci front-endové IP adresy. Toto nastavení mapuje privátní nebo veřejnou IP adresu na front-end aplikační brány. Následující krok přidruží veřejnou IP adresu v předchozím kroku ke konfiguraci front-endové IP adresy.
$fipconfig = New-AzApplicationGatewayFrontendIPConfig -Name 'fip01' -PublicIPAddress $publicipNakonfigurujte fond back-endových IP adres s IP adresami back-endových webových serverů. Tyto IP adresy přijímají síťový provoz, který pochází z IP adresy frontendu. Nahraďte IP adresy v ukázce koncovými body IP adres vaší aplikace.
$pool = New-AzApplicationGatewayBackendAddressPool -Name 'pool01' -BackendIPAddresses 203.0.113.1, 203.0.113.2, 203.0.113.3Poznámka:
Plně kvalifikovaný název domény (FQDN) je také platná hodnota, která se použije místo IP adresy pro back-endové servery. Povolíte ho pomocí přepínače -BackendFqdns .
Nakonfigurujte port front-endové IP adresy pro koncový bod veřejné IP adresy. Tento port je port, ke kterému se koncoví uživatelé připojují.
$fp = New-AzApplicationGatewayFrontendPort -Name 'port01' -Port 443Nakonfigurujte certifikát pro aplikační bránu. Tento certifikát slouží k dešifrování a opětovnému šifrování provozu ve službě Application Gateway.
$passwd = ConvertTo-SecureString <certificate file password> -AsPlainText -Force $cert = New-AzApplicationGatewaySSLCertificate -Name cert01 -CertificateFile <full path to .pfx file> -Password $passwdPoznámka:
Tato ukázka nakonfiguruje certifikát použitý pro připojení TLS. Certifikát musí být ve formátu .pfx.
Vytvořte posluchač HTTP pro bránu aplikace. Přiřaďte konfiguraci front-endové IP adresy, port a certifikát TLS/SSL, který se má použít.
$listener = New-AzApplicationGatewayHttpListener -Name listener01 -Protocol Https -FrontendIPConfiguration $fipconfig -FrontendPort $fp -SSLCertificate $certNahrajte certifikát, který se má použít pro prostředky fondu backendu s podporou TLS.
Poznámka:
Výchozí sonda získá veřejný klíč z výchozí vazby TLS na IP adrese back-endu a porovná hodnotu veřejného klíče, kterou obdrží, s hodnotou veřejného klíče, kterou zde zadáte.
Pokud používáte hlavičky hostitelů a indikaci názvu serveru (SNI) na back-endu, načtený veřejný klíč nemusí být zamýšlenou lokalitou, do které provoz proudí. Pokud máte pochybnosti, navštivte https://127.0.0.1/ back-endové servery a ověřte, který certifikát se používá pro výchozí vazbu TLS. Použijte veřejný klíč z tohoto požadavku v této části. Pokud pro vazby HTTPS používáte hlavičky hostitele a SNI a neobdržíte odpověď a certifikát z ručního požadavku prohlížeče směrovaného na https://127.0.0.1/ na back-endové servery, musíte na nich nastavit výchozí vazbu TLS. Pokud to neuděláte, sondy selžou a backend nebude povolen.
Další informace o SNI ve službě Application Gateway najdete v tématu Přehled ukončení protokolu TLS a koncového šifrování TLS se službou Application Gateway.
$authcert = New-AzApplicationGatewayAuthenticationCertificate -Name 'allowlistcert1' -CertificateFile C:\cert.cerPoznámka:
Certifikát poskytnutý v předchozím kroku by měl být veřejným klíčem certifikátu .pfx, který je k dispozici na back-endu. Exportujte certifikát (ne kořenový certifikát) nainstalovaný na back-endovém serveru ve formátu Claim, Evidence a Reasoning (CER) a použijte ho v tomto kroku. Tento krok umožňuje propojení back-endu se službou Application Gateway.
Pokud používáte skladovou položku služby Application Gateway v2, vytvořte místo ověřovacího certifikátu důvěryhodný kořenový certifikát. Další informace najdete v tématu Přehled koncového šifrování TLS se službou Application Gateway:
$trustedRootCert01 = New-AzApplicationGatewayTrustedRootCertificate -Name "test1" -CertificateFile <path to root cert file>Nakonfigurujte nastavení HTTP pro back-end služby Application Gateway. Přiřaďte certifikát nahraný v předchozím kroku k nastavení HTTP.
$poolSetting = New-AzApplicationGatewayBackendHttpSettings -Name 'setting01' -Port 443 -Protocol Https -CookieBasedAffinity Enabled -AuthenticationCertificates $authcertPro skladovou položku Application Gateway v2 použijte následující příkaz:
$poolSetting01 = New-AzApplicationGatewayBackendHttpSettings -Name “setting01” -Port 443 -Protocol Https -CookieBasedAffinity Disabled -TrustedRootCertificate $trustedRootCert01 -HostName "test1"Vytvořte pravidlo směrování nástroje pro vyrovnávání zatížení, které konfiguruje chování nástroje pro vyrovnávání zatížení. V tomto příkladu se vytvoří základní pravidlo kruhového dotazování.
$rule = New-AzApplicationGatewayRequestRoutingRule -Name 'rule01' -RuleType basic -BackendHttpSettings $poolSetting -HttpListener $listener -BackendAddressPool $poolNakonfigurujte velikost instance aplikační brány. Dostupné velikosti jsou Standard_Small, Standard_Medium a Standard_Large. Pro kapacitu jsou dostupné hodnoty 1 až 10.
$sku = New-AzApplicationGatewaySku -Name Standard_Small -Tier Standard -Capacity 2Poznámka:
Pro účely testování je možné zvolit počet instancí 1. Je důležité vědět, že na žádné instance v počtu menším než dvě instance se SLA nevztahuje, a proto se nedoporučuje. Malé brány se používají pro vývojový test, nikoli pro produkční účely.
Nakonfigurujte zásadu PROTOKOLU TLS, která se má použít ve službě Application Gateway. Application Gateway podporuje možnost nastavit minimální verzi pro verze protokolu TLS.
Následující hodnoty jsou seznam verzí protokolu, které lze definovat:
- TLSV1_0
- TLSV1_1
- TLSV1_2
Následující příklad nastaví minimální verzi protokolu na TLSv1_2 a povolí pouze TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 a TLS_RSA_WITH_AES_128_GCM_SHA256 .
$SSLPolicy = New-AzApplicationGatewaySSLPolicy -MinProtocolVersion TLSv1_2 -CipherSuite "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", "TLS_RSA_WITH_AES_128_GCM_SHA256" -PolicyType Custom
Vytvoření služby Application Gateway
Pomocí všech předchozích kroků vytvořte aplikační bránu. Vytvoření brány je proces, který trvá dlouhou dobu.
Pro skladovou položku V1 použijte následující příkaz.
$appgw = New-AzApplicationGateway -Name appgateway -SSLCertificates $cert -ResourceGroupName "appgw-rg" -Location "West US" -BackendAddressPools $pool -BackendHttpSettingsCollection $poolSetting -FrontendIpConfigurations $fipconfig -GatewayIpConfigurations $gipconfig -FrontendPorts $fp -HttpListeners $listener -RequestRoutingRules $rule -Sku $sku -SSLPolicy $SSLPolicy -AuthenticationCertificates $authcert -Verbose
Pro skladovou položku V2 použijte následující příkaz.
$appgw = New-AzApplicationGateway -Name appgateway -SSLCertificates $cert -ResourceGroupName "appgw-rg" -Location "West US" -BackendAddressPools $pool -BackendHttpSettingsCollection $poolSetting01 -FrontendIpConfigurations $fipconfig -GatewayIpConfigurations $gipconfig -FrontendPorts $fp -HttpListeners $listener -RequestRoutingRules $rule -Sku $sku -SSLPolicy $SSLPolicy -TrustedRootCertificate $trustedRootCert01 -Verbose
Pokud vypršela platnost back-endového certifikátu, použijte nový certifikát.
Tento postup použijte k použití nového certifikátu, pokud vypršela platnost back-endového certifikátu.
Aktualizujte aplikační bránu po jejím načtení.
$gw = Get-AzApplicationGateway -Name AdatumAppGateway -ResourceGroupName AdatumAppGatewayRGPřidejte nový prostředek certifikátu ze souboru .cer, který obsahuje veřejný klíč certifikátu a může to být také stejný certifikát přidaný do naslouchacího pro ukončení protokolu TLS v Application Gateway.
Add-AzApplicationGatewayAuthenticationCertificate -ApplicationGateway $gw -Name 'NewCert' -CertificateFile "appgw_NewCert.cer"Získejte nový objekt ověřovacího certifikátu do proměnné (TypeName: Microsoft.Azure.Commands.Network.Models.PSApplicationGatewayAuthenticationCertificate).
$AuthCert = Get-AzApplicationGatewayAuthenticationCertificate -ApplicationGateway $gw -Name NewCertPřiřaďte nový certifikát do nastavení BackendHttp a odkazujte na něj pomocí proměnné $AuthCert. (Zadejte název nastavení HTTP, který chcete změnit.)
$out= Set-AzApplicationGatewayBackendHttpSetting -ApplicationGateway $gw -Name "HTTP1" -Port 443 -Protocol "Https" -CookieBasedAffinity Disabled -AuthenticationCertificates $Authcert
- Potvrďte změnu do aplikační brány a předejte novou konfiguraci obsaženou do proměnné $out.
Set-AzApplicationGateway -ApplicationGateway $gw
Odebrání nepoužívaného certifikátu s vypršenou platností z nastavení HTTP
Tento postup použijte k odebrání nepoužívaného certifikátu s vypršenou platností z nastavení HTTP.
Načtěte aplikační bránu pro aktualizaci.
$gw = Get-AzApplicationGateway -Name AdatumAppGateway -ResourceGroupName AdatumAppGatewayRGUveďte název ověřovacího certifikátu, který chcete odebrat.
Get-AzApplicationGatewayAuthenticationCertificate -ApplicationGateway $gw | select nameOdeberte ověřovací certifikát ze služby Application Gateway.
$gw=Remove-AzApplicationGatewayAuthenticationCertificate -ApplicationGateway $gw -Name ExpiredCertPotvrďte změnu.
Set-AzApplicationGateway -ApplicationGateway $gw
Omezení verzí protokolu TLS u existující aplikační brány
Předchozí kroky vás provedly vytvořením aplikace s kompletním protokolem TLS a zakázáním určitých verzí protokolu TLS. Následující příklad zakáže určité zásady TLS u existující aplikační brány.
Načtěte aplikační bránu, která se má aktualizovat.
$gw = Get-AzApplicationGateway -Name AdatumAppGateway -ResourceGroupName AdatumAppGatewayRGDefinujte zásadu PROTOKOLU TLS. V následujícím příkladu jsou tlsv1.0 a TLSv1.1 zakázány a šifrovací sady TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 a TLS_RSA_WITH_AES_128_GCM_SHA256 jsou jediné povolené.
Set-AzApplicationGatewaySSLPolicy -MinProtocolVersion TLSv1_2 -PolicyType Custom -CipherSuite "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", "TLS_RSA_WITH_AES_128_GCM_SHA256" -ApplicationGateway $gwNakonec bránu aktualizujte. Tento poslední krok je dlouhotrvající úloha. Po dokončení se na aplikační bráně nakonfiguruje kompletní protokol TLS.
$gw | Set-AzApplicationGateway
Získání názvu DNS aplikační brány
Po vytvoření brány je dalším krokem konfigurace front-endu pro komunikaci. Application Gateway vyžaduje dynamicky přiřazený název DNS při použití veřejné IP adresy, což není uživatelsky přívětivé. Aby koncoví uživatelé mohli získat přístup ke službě Application Gateway, můžete pomocí záznamu CNAME odkazovat na veřejný koncový bod služby Application Gateway. Další informace najdete v tématu Konfigurace vlastního názvu domény v Azure.
Pokud chcete nakonfigurovat alias, načtěte podrobnosti o aplikační bráně a jejím přidruženém názvu IP/DNS pomocí elementu PublicIPAddress připojeného k aplikační bráně. Pomocí názvu DNS služby Application Gateway vytvořte záznam CNAME, který odkazuje na tyto dvě webové aplikace na tento název DNS. Nedoporučujeme používat záznamy A, protože virtuální IP adresa se může při restartování služby Application Gateway změnit.
Get-AzPublicIpAddress -ResourceGroupName appgw-RG -Name publicIP01
Name : publicIP01
ResourceGroupName : appgw-RG
Location : westus
Id : /subscriptions/<subscription_id>/resourceGroups/appgw-RG/providers/Microsoft.Network/publicIPAddresses/publicIP01
Etag : W/"00000d5b-54ed-4907-bae8-99bd5766d0e5"
ResourceGuid : 00000000-0000-0000-0000-000000000000
ProvisioningState : Succeeded
Tags :
PublicIpAllocationMethod : Dynamic
IpAddress : xx.xx.xxx.xx
PublicIpAddressVersion : IPv4
IdleTimeoutInMinutes : 4
IpConfiguration : {
"Id": "/subscriptions/<subscription_id>/resourceGroups/appgw-RG/providers/Microsoft.Network/applicationGateways/appgwtest/frontendIP
Configurations/frontend1"
}
DnsSettings : {
"Fqdn": "00000000-0000-xxxx-xxxx-xxxxxxxxxxxx.cloudapp.net"
}
Další kroky
Další informace o posílení zabezpečení webových aplikací pomocí firewallu webových aplikací prostřednictvím služby Application Gateway najdete v přehledu brány firewall webových aplikací.