Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Overzicht
Azure Application Gateway ondersteunt end-to-end-versleuteling van verkeer. Application Gateway beëindigt de TLS/SSL-verbinding op de toepassingsgateway. De gateway past vervolgens de routeringsregels toe op het verkeer, versleutelt het pakket opnieuw en stuurt het pakket door naar de juiste back-endserver op basis van de gedefinieerde routeringsregels. Reacties van de webserver ondergaan hetzelfde proces terug naar de eindgebruiker.
Application Gateway ondersteunt het definiëren van aangepaste TLS-opties. Het ondersteunt ook het uitschakelen van de volgende protocolversies: TLSv1.0, TLSv1.1 en TLSv1.2, en het definiëren van welke coderingssuites moeten worden gebruikt en de volgorde van voorkeur. Zie het overzicht van TLS-beleid voor meer informatie over configureerbare TLS-opties.
Opmerking
SSL 2.0 en SSL 3.0 zijn standaard uitgeschakeld en kunnen niet worden ingeschakeld. Ze worden beschouwd als onbeveiligd en kunnen niet worden gebruikt met Application Gateway.
              
              
            
Scenariobeschrijving
In dit scenario leert u hoe u een toepassingsgateway maakt met behulp van end-to-end TLS met PowerShell.
In dit scenario wordt het volgende beschreven:
- Maak een resourcegroep met de naam appgw-rg.
 - Maak een virtueel netwerk met de naam appgwvnet met een adresruimte van 10.0.0.0/16.
 - Maak twee subnetten met de naam appgwsubnet en appsubnet.
 - Maak een kleine toepassingsgateway die end-to-end TLS-versleuteling ondersteunt die tls-protocolversies en coderingssuites beperkt.
 
Voordat u begint
Opmerking
U wordt aangeraden de Azure Az PowerShell-module te gebruiken om te communiceren met Azure. Zie Azure PowerShell installeren om aan de slag te gaan. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.
Voor het configureren van end-to-end TLS met een toepassingsgateway is een certificaat vereist voor de gateway en certificaten zijn vereist voor de back-endservers. Het gatewaycertificaat wordt gebruikt om een symmetrische sleutel af te leiden volgens tls-protocolspecificatie. De symmetrische sleutel wordt vervolgens gebruikt voor het versleutelen en ontsleutelen van het verkeer dat naar de gateway wordt verzonden. Het gatewaycertificaat moet de PFX-indeling (Personal Information Exchange) hebben. Met deze bestandsindeling kunt u de persoonlijke sleutel exporteren die door de toepassingsgateway is vereist om de versleuteling en ontsleuteling van verkeer uit te voeren.
Voor end-to-end TLS-versleuteling moet de back-end expliciet worden toegestaan door de toepassingsgateway. Upload het openbare certificaat van de back-endservers naar de toepassingsgateway. Door het certificaat toe te voegen, zorgt u ervoor dat de toepassingsgateway alleen communiceert met bekende back-endinstanties. Hierdoor wordt de end-to-end communicatie verder beveiligd.
Het configuratieproces wordt beschreven in de volgende secties.
Maak de resourcegroep aan
In deze sectie wordt uitgelegd hoe u een resourcegroep maakt die de toepassingsgateway bevat.
Meld u aan bij uw Azure-account.
Connect-AzAccountSelecteer het abonnement dat u voor dit scenario wilt gebruiken.
Select-Azsubscription -SubscriptionName "<Subscription name>"Maak een resourcegroep. (Sla deze stap over als u een bestaande resourcegroep gebruikt.)
New-AzResourceGroup -Name appgw-rg -Location "West US"
Een virtueel netwerk en een subnet maken voor de toepassingsgateway
In het volgende voorbeeld worden een virtueel netwerk en twee subnetten gemaakt. Eén subnet wordt gebruikt voor het opslaan van de toepassingsgateway. Het andere subnet wordt gebruikt voor de back-ends die als host fungeren voor de webtoepassing.
Wijs een adresbereik toe voor het subnet dat moet worden gebruikt voor de toepassingsgateway.
$gwSubnet = New-AzVirtualNetworkSubnetConfig -Name 'appgwsubnet' -AddressPrefix 10.0.0.0/24Opmerking
Subnetten die zijn geconfigureerd voor een toepassingsgateway, moeten de juiste grootte hebben. Een toepassingsgateway kan worden geconfigureerd voor maximaal 10 exemplaren. Elk exemplaar heeft één IP-adres uit het subnet. Te klein van een subnet kan een negatieve invloed hebben op het uitschalen van een toepassingsgateway.
Wijs een adresbereik toe dat moet worden gebruikt voor de backend-adrespool.
$nicSubnet = New-AzVirtualNetworkSubnetConfig -Name 'appsubnet' -AddressPrefix 10.0.2.0/24Maak een virtueel netwerk met de subnetten die in de voorgaande stappen zijn gedefinieerd.
$vnet = New-AzvirtualNetwork -Name 'appgwvnet' -ResourceGroupName appgw-rg -Location "West US" -AddressPrefix 10.0.0.0/16 -Subnet $gwSubnet, $nicSubnetHaal de virtuele netwerkresources en subnetresources op die moeten worden gebruikt in de volgende stappen.
$vnet = Get-AzvirtualNetwork -Name 'appgwvnet' -ResourceGroupName appgw-rg $gwSubnet = Get-AzVirtualNetworkSubnetConfig -Name 'appgwsubnet' -VirtualNetwork $vnet $nicSubnet = Get-AzVirtualNetworkSubnetConfig -Name 'appsubnet' -VirtualNetwork $vnet
Een openbaar IP-adres maken voor de front-endconfiguratie
Maak een openbare IP-resource die moet worden gebruikt voor de toepassingsgateway. Dit openbare IP-adres wordt gebruikt in een van de volgende stappen.
$publicip = New-AzPublicIpAddress -ResourceGroupName appgw-rg -Name 'publicIP01' -Location "West US" -AllocationMethod Dynamic
Belangrijk
Application Gateway biedt geen ondersteuning voor het gebruik van een openbaar IP-adres dat is gemaakt met een gedefinieerd domeinlabel. Alleen een openbaar IP-adres met een dynamisch gemaakt domeinlabel wordt ondersteund. Als u een beschrijvende DNS-naam voor de toepassingsgateway nodig hebt, raden we u aan een CNAME-record als alias te gebruiken.
Een configuratieobject voor de toepassingsgateway maken
Alle configuratie-items worden ingesteld voordat u de toepassingsgateway maakt. Met de volgende stappen maakt u de configuratie-items die nodig zijn voor een toepassingsgatewayresource.
Maak een IP-configuratie van de toepassingsgateway. Met deze instelling wordt geconfigureerd welke van de subnetten die de toepassingsgateway gebruikt. Wanneer de toepassingsgateway wordt gestart, wordt een IP-adres opgehaald uit het geconfigureerde subnet en wordt netwerkverkeer gerouteerd naar de IP-adressen in de back-end-IP-adresgroep. Onthoud dat elk exemplaar één IP-adres gebruikt.
$gipconfig = New-AzApplicationGatewayIPConfiguration -Name 'gwconfig' -Subnet $gwSubnetMaak een front-end-IP-configuratie. Met deze instelling wordt een privé- of openbaar IP-adres toegewezen aan de front-end van de toepassingsgateway. De volgende stap koppelt het openbare IP-adres in de vorige stap aan de front-end-IP-configuratie.
$fipconfig = New-AzApplicationGatewayFrontendIPConfig -Name 'fip01' -PublicIPAddress $publicipConfigureer de back-end-IP-adresgroep met de IP-adressen van de back-endwebservers. Deze IP-adressen zijn de IP-adressen die het netwerkverkeer ontvangen dat afkomstig is van het front-end-IP-eindpunt. Vervang de IP-adressen in het voorbeeld door eindpunten van uw eigen toepassings-IP-adres.
$pool = New-AzApplicationGatewayBackendAddressPool -Name 'pool01' -BackendIPAddresses 203.0.113.1, 203.0.113.2, 203.0.113.3Opmerking
Een FQDN (Fully Qualified Domain Name) is ook een geldige waarde die moet worden gebruikt in plaats van een IP-adres voor de back-endservers. U schakelt deze in met behulp van de switch -BackendFqdns .
Configureer de front-end-IP-poort voor het openbare IP-eindpunt. Deze poort is de poort waarmee eindgebruikers verbinding maken.
$fp = New-AzApplicationGatewayFrontendPort -Name 'port01' -Port 443Configureer het certificaat voor de toepassingsgateway. Dit certificaat wordt gebruikt om het verkeer op de toepassingsgateway te ontsleutelen en opnieuw te ontsleutelen.
$passwd = ConvertTo-SecureString <certificate file password> -AsPlainText -Force $cert = New-AzApplicationGatewaySSLCertificate -Name cert01 -CertificateFile <full path to .pfx file> -Password $passwdOpmerking
In dit voorbeeld wordt het certificaat geconfigureerd dat wordt gebruikt voor de TLS-verbinding. Het certificaat moet de PFX-indeling hebben.
Maak de HTTP-listener voor de toepassingsgateway. Wijs de front-end-IP-configuratie, poort en TLS/SSL-certificaat toe dat moet worden gebruikt.
$listener = New-AzApplicationGatewayHttpListener -Name listener01 -Protocol Https -FrontendIPConfiguration $fipconfig -FrontendPort $fp -SSLCertificate $certUpload het certificaat dat moet worden gebruikt voor de resources van de back-endpool met TLS.
Opmerking
De standaardtest haalt de openbare sleutel op van de standaard TLS-binding op het IP-adres van de back-end en vergelijkt de openbare-sleutelwaarde die deze ontvangt met de openbare-sleutelwaarde die u hier opgeeft.
Als u hostheaders en SNI (Server Name Indication) op de back-end gebruikt, is de opgehaalde openbare sleutel mogelijk niet de beoogde site waarnaar verkeer stroomt. Als u twijfelt, gaat u naar https://127.0.0.1/ de back-endservers om te controleren welk certificaat wordt gebruikt voor de standaard TLS-binding. Gebruik de openbare sleutel van die aanvraag in deze sectie. Als u host-headers en SNI op HTTPS-bindingen gebruikt en u geen antwoord en certificaat ontvangt van een handmatige browseraanvraag op https://127.0.0.1/ de back-endservers, moet u een standaard TLS-binding instellen. Als u dit niet doet, mislukken probes en krijgt de back-end geen toestemming.
Zie Overzicht van TLS-beëindiging en end-to-end TLS met Application Gateway voor meer informatie over SNI in Application Gateway.
$authcert = New-AzApplicationGatewayAuthenticationCertificate -Name 'allowlistcert1' -CertificateFile C:\cert.cerOpmerking
Het certificaat dat in de vorige stap is opgegeven, moet de openbare sleutel van het PFX-certificaat zijn dat aanwezig is op de back-end. Exporteer het certificaat (niet het basiscertificaat) dat is geïnstalleerd op de back-endserver in de CER-indeling (Claim, Evidence en Reasoning) en gebruik het in deze stap. Met deze stap wordt de back-end gekoppeld aan de toepassingsgateway.
Als u de Application Gateway v2-SKU gebruikt, maakt u een vertrouwd basiscertificaat in plaats van een verificatiecertificaat. Zie Overzicht van end-to-end TLS met Application Gateway voor meer informatie:
$trustedRootCert01 = New-AzApplicationGatewayTrustedRootCertificate -Name "test1" -CertificateFile <path to root cert file>Configureer de HTTP-instellingen voor de back-end van de toepassingsgateway. Wijs het certificaat toe dat in de vorige stap is geüpload naar de HTTP-instellingen.
$poolSetting = New-AzApplicationGatewayBackendHttpSettings -Name 'setting01' -Port 443 -Protocol Https -CookieBasedAffinity Enabled -AuthenticationCertificates $authcertGebruik de volgende opdracht voor de Application Gateway v2-SKU:
$poolSetting01 = New-AzApplicationGatewayBackendHttpSettings -Name “setting01” -Port 443 -Protocol Https -CookieBasedAffinity Disabled -TrustedRootCertificate $trustedRootCert01 -HostName "test1"Maak een load balancer-routeringsregel waarmee het gedrag van de load balancer wordt geconfigureerd. In dit voorbeeld wordt een eenvoudige round robin-regel gemaakt.
$rule = New-AzApplicationGatewayRequestRoutingRule -Name 'rule01' -RuleType basic -BackendHttpSettings $poolSetting -HttpListener $listener -BackendAddressPool $poolConfigureer de instantiegrootte van de toepassingsgateway. De beschikbare grootten zijn Standard_Small, Standard_Medium en Standard_Large. Voor capaciteit zijn de beschikbare waarden 1 tot en met 10.
$sku = New-AzApplicationGatewaySku -Name Standard_Small -Tier Standard -Capacity 2Opmerking
Een instantieaantal van 1 kan worden gekozen voor testdoeleinden. Het is belangrijk om te weten dat elk aantal exemplaren onder twee exemplaren niet wordt gedekt door de SLA en daarom niet wordt aanbevolen. Kleine gateways moeten worden gebruikt voor ontwikkeltests en niet voor productiedoeleinden.
Configureer het TLS-beleid dat moet worden gebruikt op de toepassingsgateway. Application Gateway ondersteunt de mogelijkheid om een minimale versie in te stellen voor TLS-protocolversies.
De volgende waarden zijn een lijst met protocolversies die kunnen worden gedefinieerd:
- TLSV1_0
 - TLSV1_1
 - TLSV1_2
 
In het volgende voorbeeld wordt de minimale protocolversie ingesteld op TLSv1_2 en wordt alleen TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 en TLS_RSA_WITH_AES_128_GCM_SHA256 ingeschakeld.
$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
De toepassingsgateway maken
Maak de toepassingsgateway met behulp van alle voorgaande stappen. Het maken van de gateway is een proces dat veel tijd kost.
Gebruik de onderstaande opdracht voor V1 SKU
$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
Gebruik de onderstaande opdracht voor V2-SKU
$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
Een nieuw certificaat toepassen als het back-endcertificaat is verlopen
Gebruik deze procedure om een nieuw certificaat toe te passen als het back-endcertificaat is verlopen.
Haal de toepassingsgateway op om bij te werken.
$gw = Get-AzApplicationGateway -Name AdatumAppGateway -ResourceGroupName AdatumAppGatewayRGVoeg de nieuwe certificaatresource toe uit het .cer-bestand, dat de openbare sleutel van het certificaat bevat en waar ook hetzelfde certificaat aan de listener kan worden toegevoegd bij TLS-beëindiging bij de toepassingsgateway.
Add-AzApplicationGatewayAuthenticationCertificate -ApplicationGateway $gw -Name 'NewCert' -CertificateFile "appgw_NewCert.cer"Haal het nieuwe verificatiecertificaatobject op in een variabele (TypeName: Microsoft.Azure.Commands.Network.Models.PSApplicationGatewayAuthenticationCertificate).
$AuthCert = Get-AzApplicationGatewayAuthenticationCertificate -ApplicationGateway $gw -Name NewCertWijs het nieuwe certificaat toe aan de back-endhttp-instelling en raadpleeg het met de variabele $AuthCert. (Geef de NAAM van de HTTP-instelling op die u wilt wijzigen.)
$out= Set-AzApplicationGatewayBackendHttpSetting -ApplicationGateway $gw -Name "HTTP1" -Port 443 -Protocol "Https" -CookieBasedAffinity Disabled -AuthenticationCertificates $Authcert
- Voer de wijziging door in de toepassingsgateway en geef de nieuwe configuratie door die is opgenomen in de $out variabele.
 
Set-AzApplicationGateway -ApplicationGateway $gw  
Een niet-gebruikt verlopen certificaat verwijderen uit HTTP-instellingen
Gebruik deze procedure om een niet-gebruikt verlopen certificaat te verwijderen uit HTTP-instellingen.
Haal de toepassingsgateway op om bij te werken.
$gw = Get-AzApplicationGateway -Name AdatumAppGateway -ResourceGroupName AdatumAppGatewayRGVermeld de naam van het verificatiecertificaat dat u wilt verwijderen.
Get-AzApplicationGatewayAuthenticationCertificate -ApplicationGateway $gw | select nameVerwijder het verificatiecertificaat uit een toepassingsgateway.
$gw=Remove-AzApplicationGatewayAuthenticationCertificate -ApplicationGateway $gw -Name ExpiredCertVoer de wijziging door.
Set-AzApplicationGateway -ApplicationGateway $gw
TLS-protocolversies beperken op een bestaande toepassingsgateway
In de voorgaande stappen hebt u een toepassing gemaakt met end-to-end TLS en bepaalde TLS-protocolversies uitgeschakeld. In het volgende voorbeeld worden bepaalde TLS-beleidsregels op een bestaande toepassingsgateway uitgeschakeld.
Haal de toepassingsgateway op om bij te werken.
$gw = Get-AzApplicationGateway -Name AdatumAppGateway -ResourceGroupName AdatumAppGatewayRGDefinieer een TLS-beleid. In het volgende voorbeeld zijn TLSv1.0 en TLSv1.1 uitgeschakeld en zijn de coderingssuites TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 en TLS_RSA_WITH_AES_128_GCM_SHA256 de enigen toegestaan.
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 $gwWerk ten slotte de gateway bij. Deze laatste stap is een langlopende taak. Wanneer dit is gebeurd, wordt end-to-end TLS geconfigureerd op de toepassingsgateway.
$gw | Set-AzApplicationGateway
Een DNS-naam voor een toepassingsgateway ophalen
Nadat de gateway is gemaakt, is de volgende stap het configureren van de front-end voor communicatie. Application Gateway vereist een dynamisch toegewezen DNS-naam bij het gebruik van een openbaar IP-adres, wat niet vriendelijk is. Om ervoor te zorgen dat eindgebruikers de toepassingsgateway kunnen bereiken, kunt u een CNAME-record gebruiken om naar het openbare eindpunt van de toepassingsgateway te verwijzen. Zie Een aangepaste domeinnaam configureren voor in Azure voor meer informatie.
Als u een alias wilt configureren, haalt u de details van de toepassingsgateway en de bijbehorende IP/DNS-naam op met behulp van het PublicIPAddress-element dat is gekoppeld aan de toepassingsgateway. Gebruik de DNS-naam van de toepassingsgateway om een CNAME-record te maken waarmee de twee webtoepassingen naar deze DNS-naam worden verwezen. We raden het gebruik van A-records niet aan, omdat het VIP kan worden gewijzigd bij het opnieuw opstarten van de toepassingsgateway.
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"
                            }
Volgende stappen
Zie het overzicht van de Web Application Firewall voor meer informatie over het beveiligen van uw webtoepassingen met Web Application Firewall via Application Gateway.