Configurare un gateway applicazione per l'offload SSL con Azure Resource ManagerConfigure an application gateway for SSL offload by using Azure Resource Manager

Il gateway applicazione di Azure può essere configurato per terminare la sessione Secure Sockets Layer (SSL) nel gateway ed evitare costose attività di decrittografia SSL nella Web farm.Azure Application Gateway can be configured to terminate the Secure Sockets Layer (SSL) session at the gateway to avoid costly SSL decryption tasks to happen at the web farm. L'offload SSL semplifica anche la configurazione e la gestione del server front-end dell'applicazione Web.SSL offload also simplifies the front-end server setup and management of the web application.

Prima di iniziareBefore you begin

  1. Installare la versione più recente dei cmdlet di Azure PowerShell usando l'Installazione guidata piattaforma Web.Install the latest version of the Azure PowerShell cmdlets by using the Web Platform Installer. È possibile scaricare e installare la versione più recente dalla sezione Windows PowerShell della Pagina di download.You can download and install the latest version from the Windows PowerShell section of the Downloads page.
  2. Creare una rete virtuale e una subnet per il gateway applicazione.Create a virtual network and a subnet for the application gateway. Assicurarsi che nessuna macchina virtuale o distribuzione cloud stia usando la subnet.Make sure that no virtual machines or cloud deployments are using the subnet. Il gateway applicazione deve essere da solo in una subnet di rete virtuale.The application gateway must be by itself in a virtual network subnet.
  3. È necessario che i server configurati per l'uso del gateway applicazione esistano oppure che i relativi endpoint siano stati creati nella rete virtuale o con un indirizzo IP o VIP pubblico assegnato.The servers that you configure to use the application gateway must exist or have their endpoints created either in the virtual network or with a public IP address or virtual IP address (VIP) assigned.

Elementi necessari per creare un gateway applicazioneWhat is required to create an application gateway?

  • Pool di server back-end: elenco di indirizzi IP dei server back-end.Back-end server pool: The list of IP addresses of the back-end servers. Gli indirizzi IP elencati devono appartenere alla subnet della rete virtuale o devono essere indirizzi IP/VIP pubblici.The IP addresses listed should belong to the virtual network subnet or should be a public IP/VIP.
  • Impostazioni del pool di server back-end: ogni pool ha impostazioni come porta, protocollo e affinità basata sui cookie.Back-end server pool settings: Every pool has settings like port, protocol, and cookie-based affinity. Queste impostazioni sono associate a un pool e vengono applicate a tutti i server nel pool.These settings are tied to a pool and are applied to all servers within the pool.
  • Porta front-end: porta pubblica aperta sul gateway applicazione.Front-end port: This port is the public port that is opened on the application gateway. Il traffico raggiunge questa porta e quindi viene reindirizzato a uno dei server back-end.Traffic hits this port, and then gets redirected to one of the back-end servers.
  • Listener: ha una porta front-end, un protocollo (HTTP o HTPPS, queste impostazioni fanno distinzione tra maiuscole e minuscole) e il nome del certificato SSL, se si configura l'offload SSL.Listener: The listener has a front-end port, a protocol (Http or Https; these settings are case-sensitive), and the SSL certificate name (if configuring SSL offload).
  • Regola: associa il listener e il pool di server back-end e definisce il pool di server back-end a cui indirizzare il traffico quando raggiunge un listener specifico.Rule: The rule binds the listener and the back-end server pool and defines which back-end server pool to direct the traffic to when it hits a particular listener. È attualmente supportata solo la regola basic .Currently, only the basic rule is supported. La regola basic è una distribuzione del carico di tipo round robin.The basic rule is round-robin load distribution.

Note aggiuntive sulla configurazioneAdditional configuration notes

Per la configurazione dei certificati SSL, il protocollo in HttpListener deve essere sostituito con Https (distinzione tra maiuscole e minuscole).For SSL certificates configuration, the protocol in HttpListener should change to Https (case sensitive). Aggiungere l'elemento SslCertificate ad HttpListener con il valore della variabile configurato per il certificato SSL.Add the SslCertificate element to HttpListener with the variable value configured for the SSL certificate. La porta front-end deve essere aggiornata a 443.The front-end port should be updated to 443.

Per abilitare l'affinità basata sui cookie: è possibile configurare un gateway applicazione per fare in modo che una richiesta proveniente da una sessione client sia sempre diretta alla stessa macchina virtuale nella Web farm.To enable cookie-based affinity: You can configure an application gateway to ensure that a request from a client session is always directed to the same VM in the web farm. A tale scopo, aggiungere un cookie di sessione che consenta al gateway di indirizzare il traffico in modo appropriato.To accomplish this, insert a session cookie that allows the gateway to direct traffic appropriately. Per abilitare l'affinità basata sui cookie, impostare CookieBasedAffinity su Enabled nell'elemento BackendHttpSettings.To enable cookie-based affinity, set CookieBasedAffinity to Enabled in the BackendHttpSettings element.

Creare un gateway applicazioneCreate an application gateway

La differenza tra l'uso del modello di distribuzione classica di Azure e di Azure Resource Manager risiede nell'ordine in cui vengono creati un gateway applicazione e gli elementi da configurare.The difference between using the Azure classic deployment model and using Azure Resource Manager is the order in which you create an application gateway and the items that need to be configured.

Con Gestione risorse, tutti gli elementi di un gateway applicazione vengono configurati singolarmente e quindi combinati per creare una risorsa gateway applicazione.With Resource Manager, all components of an application gateway are configured individually, and then put together to create an application gateway resource.

Per creare un gateway applicazione, seguire questa procedura:Here are the steps needed to create an application gateway:

  1. Creare un gruppo di risorse per Gestione risorseCreate a resource group for Resource Manager
  2. Creare una rete virtuale, una subnet e un indirizzo IP pubblico per il gateway applicazioneCreate virtual network, subnet, and public IP for the application gateway
  3. Creare un oggetto di configurazione del gateway applicazioneCreate an application gateway configuration object
  4. Creare una risorsa gateway applicazioneCreate an application gateway resource

Creare un gruppo di risorse per Gestione risorseCreate a resource group for Resource Manager

Assicurarsi di passare alla modalità PowerShell per usare i cmdlet di Gestione risorse di Azure.Make sure that you switch PowerShell mode to use the Azure Resource Manager cmdlets. Per altre informazioni, vedere Uso di Windows PowerShell con Gestione risorse.For more information, see Using Windows PowerShell with Resource Manager.

  1. Immettere il comando seguente:Enter the following command:

    Login-AzureRmAccount
    
  2. Per controllare le sottoscrizioni per l'account, immettere i comandi seguenti:To check the subscriptions for the account, enter the following commands:

    Get-AzureRmSubscription
    

    Verrà richiesto di eseguire l'autenticazione con le proprie credenziali.You are prompted to authenticate with your credentials.

  3. Per scegliere le sottoscrizioni ad Azure da usare, immettere il comando seguente:To choose which of your Azure subscriptions to use, enter the following command:

    Select-AzureRmSubscription -Subscriptionid "GUID of subscription"
    
  4. Per creare un gruppo di risorse, usare il comando seguente.To create a resource group, enter the following command. Se si usa un gruppo di risorse esistente, ignorare questo passaggio.(Skip this step if you're using an existing resource group.)

    New-AzureRmResourceGroup -Name appgw-rg -Location "West US"
    

Gestione risorse di Azure richiede che tutti i gruppi di risorse specifichino un percorsoAzure Resource Manager requires that all resource groups specify a location. Questa impostazione viene usata come località predefinita per le risorse presenti nel gruppo di risorse.This setting is used as the default location for resources in that resource group. Assicurarsi che tutti i comandi per creare un gateway applicazione usino lo stesso gruppo di risorse.Make sure that all commands to create an application gateway use the same resource group.

Nell'esempio precedente è stato creato un gruppo di risorse denominato appgw-RG e la località Stati Uniti occidentali.In the previous example, we created a resource group called appgw-RG and the location is West US.

Creare una rete virtuale e una subnet per il gateway applicazioneCreate a virtual network and a subnet for the application gateway

L'esempio seguente illustra come creare una rete virtuale usando Gestione risorse:The following example shows how to create a virtual network by using Resource Manager:

  1. Immettere il comando seguente:Enter the following command:

    $subnet = New-AzureRmVirtualNetworkSubnetConfig -Name subnet01 -AddressPrefix 10.0.0.0/24
    

    Questo esempio assegna l'intervallo di indirizzi 10.0.0.0/24 a una variabile di subnet da usare per creare una rete virtuale.This sample assigns the address range 10.0.0.0/24 to a subnet variable to be used to create a virtual network.

  2. Immettere il comando seguente:Enter the following command:

    $vnet = New-AzureRmVirtualNetwork -Name appgwvnet -ResourceGroupName appgw-rg -Location "West US" -AddressPrefix 10.0.0.0/16 -Subnet $subnet
    

    Questo esempio crea una rete virtuale denominata appgwvnet nel gruppo di risorse appgw-rg per l'area Stati Uniti occidentali usando il prefisso 10.0.0.0/16 con subnet 10.0.0.0/24.This sample creates a virtual network named appgwvnet in resource group appgw-rg for the West US region by using the prefix 10.0.0.0/16 with subnet 10.0.0.0/24.

  3. Immettere il comando seguente:Enter the following command:

    $subnet = $vnet.Subnets[0]
    

    Questo esempio assegna l'oggetto subnet alla variabile $subnet per i passaggi successivi.This sample assigns the subnet object to variable $subnet for the next steps.

Creare un indirizzo IP pubblico per la configurazione front-endCreate a public IP address for the front-end configuration

Per creare un indirizzo IP pubblico per la configurazione front-end, immettere il comando seguente:To create a public IP address for the front-end configuration, enter the following command:

$publicip = New-AzureRmPublicIpAddress -ResourceGroupName appgw-rg -name publicIP01 -location "West US" -AllocationMethod Dynamic

Questo esempio crea una risorsa IP pubblica publicIP01 nel gruppo di risorse appgw-rg per l'area Stati Uniti occidentali.This sample creates a public IP resource publicIP01 in resource group appgw-rg for the West US region.

Creare un oggetto di configurazione gateway applicazioneCreate an application gateway configuration object

  1. Per creare un oggetto di configurazione di gateway applicazione, immettere il comando seguente:To create an application gateway configuration object, enter the following command:

    $gipconfig = New-AzureRmApplicationGatewayIPConfiguration -Name gatewayIP01 -Subnet $subnet
    

    Questo esempio crea una configurazione IP del gateway applicazione denominata gatewayIP01.This sample creates an application gateway IP configuration named gatewayIP01. All'avvio, il gateway applicazione seleziona un indirizzo IP dalla subnet configurata e instrada il traffico di rete agli indirizzi IP nel pool di indirizzi IP back-end.When Application Gateway starts, it picks up an IP address from the configured subnet and routes the network traffic to the IP addresses in the back-end IP pool. Tenere presente che ogni istanza ha un indirizzo IP.Keep in mind that each instance takes one IP address.

  2. Immettere il comando seguente:Enter the following command:

    $pool = New-AzureRmApplicationGatewayBackendAddressPool -Name pool01 -BackendIPAddresses 134.170.185.46, 134.170.188.221,134.170.185.50
    

    Questo esempio configura il pool di indirizzi IP back-end denominato pool01 con gli indirizzi IP 134.170.185.46, 134.170.188.221 e 134.170.185.50.This sample configures the back-end IP address pool named pool01 with IP addresses 134.170.185.46, 134.170.188.221, and 134.170.185.50. Tali valori saranno gli indirizzi IP che ricevono il traffico di rete proveniente dall'endpoint IP front-end.Those values are the IP addresses that receive the network traffic that comes from the front-end IP endpoint. Sostituire gli indirizzi IP dell'esempio precedente con gli indirizzi IP degli endpoint dell'applicazione Web.Replace the IP addresses from the preceding example with the IP addresses of your web application endpoints.

  3. Immettere il comando seguente:Enter the following command:

    $poolSetting = New-AzureRmApplicationGatewayBackendHttpSettings -Name poolsetting01 -Port 80 -Protocol Http -CookieBasedAffinity Enabled
    

    Questo esempio configura l'impostazione poolsetting01 del gateway applicazione per il traffico di rete con bilanciamento del carico nel pool back-end.This sample configures application gateway setting poolsetting01 to load-balance network traffic in the back-end pool.

  4. Immettere il comando seguente:Enter the following command:

    $fp = New-AzureRmApplicationGatewayFrontendPort -Name frontendport01  -Port 443
    

    Questo esempio configura la porta IP front-end denominata frontendport01 per l'endpoint IP pubblico.This sample configures the front-end IP port named frontendport01 for the public IP endpoint.

  5. Immettere il comando seguente:Enter the following command:

    $cert = New-AzureRmApplicationGatewaySslCertificate -Name cert01 -CertificateFile <full path for certificate file> -Password "<password>"
    

    Questo esempio configura il certificato usato per la connessione SSL.This sample configures the certificate used for SSL connection. Il certificato deve essere in formato PFX e la password deve essere compresa tra 4 e 12 caratteri.The certificate needs to be in PFX format, and the password must be between 4 to 12 characters.

  6. Immettere il comando seguente:Enter the following command:

    $fipconfig = New-AzureRmApplicationGatewayFrontendIPConfig -Name fipconfig01 -PublicIPAddress $publicip
    

    Questo esempio crea la configurazione IP front-end denominata fipconfig01 e associa l'indirizzo IP pubblico alla configurazione IP front-end.This sample creates the front-end IP configuration named fipconfig01 and associates the public IP address with the front-end IP configuration.

  7. Immettere il comando seguente:Enter the following command:

    $listener = New-AzureRmApplicationGatewayHttpListener -Name listener01  -Protocol Https -FrontendIPConfiguration $fipconfig -FrontendPort $fp -SslCertificate $cert
    

    Questo esempio crea il listener denominato listener01 e associa la porta front-end al certificato e alla configurazione IP front-end.This sample creates the listener named listener01 and associates the front-end port to the front-end IP configuration and certificate.

  8. Immettere il comando seguente:Enter the following command:

    $rule = New-AzureRmApplicationGatewayRequestRoutingRule -Name rule01 -RuleType Basic -BackendHttpSettings $poolSetting -HttpListener $listener -BackendAddressPool $pool
    

    Questo esempio crea la regola di routing del servizio di bilanciamento del carico denominata rule01 che configura il comportamento di bilanciamento del carico.This sample creates the load-balancer routing rule named rule01 that configures the load-balancer behavior.

  9. Immettere il comando seguente:Enter the following command:

    $sku = New-AzureRmApplicationGatewaySku -Name Standard_Small -Tier Standard -Capacity 2
    

    Questo esempio configura le dimensioni dell'istanza del gateway applicazione.This sample configures the instance size of the application gateway.

    Nota

    Il valore predefinito per InstanceCount è 2, con un valore massimo pari a 10.The default value for InstanceCount is 2, with a maximum value of 10. Il valore predefinito per GatewaySize è Medium.The default value for GatewaySize is Medium. È possibile scegliere tra Standard_Small, Standard_Medium e Standard_Large.You can choose between Standard_Small, Standard_Medium, and Standard_Large.

  10. Immettere il comando seguente:Enter the following command:

    $policy = New-AzureRmApplicationGatewaySslPolicy -PolicyType Predefined -PolicyName AppGwSslPolicy20170401S
    

    Questo passaggio definisce i criteri SSL da usare sul gateway applicazione.This step defines the SSL policy to use on the application gateway. Per altre informazioni, vedere Configurare i pacchetti di crittografia e le versioni dei criteri SSL nel gateway applicazione.For more information, see Configure SSL policy versions and cipher suites on Application Gateway.

Creare un gateway applicazione usando New-AzureApplicationGatewayCreate an application gateway by using New-AzureApplicationGateway

Immettere il comando seguente:Enter the following command:

$appgw = New-AzureRmApplicationGateway -Name appgwtest -ResourceGroupName appgw-rg -Location "West US" -BackendAddressPools $pool -BackendHttpSettingsCollection $poolSetting -FrontendIpConfigurations $fipconfig  -GatewayIpConfigurations $gipconfig -FrontendPorts $fp -HttpListeners $listener -RequestRoutingRules $rule -Sku $sku -SslCertificates $cert -SslPolicy $policy

Questo esempio crea un gateway applicazione con tutti gli elementi di configurazione illustrati nei passaggi precedenti.This sample creates an application gateway with all the configuration items from the preceding steps. Nell'esempio il gateway applicazione è denominato appgwtest.In the example, the application gateway is called appgwtest.

Ottenere il nome DNS del gateway applicazioneGet the application gateway DNS name

Dopo avere creato il gateway, il passaggio successivo prevede la configurazione del front-end per la comunicazione.After the gateway is created, the next step is to configure the front end for communication. Il gateway applicazione richiede un nome DNS assegnato in modo dinamico, non descrittivo quando si usa un IP pubblico.Application Gateway requires a dynamically assigned DNS name when using a public IP, which is not friendly. Per assicurarsi che gli utenti finali possano raggiungere il gateway applicazione, è possibile usare un record CNAME che faccia riferimento all'endpoint pubblico del gateway applicazione.To ensure end users can hit the application gateway, you can use a CNAME record to point to the public endpoint of the application gateway. Per altre informazioni, vedere Configurare un nome di dominio personalizzato in Azure.For more information, see Configuring a custom domain name in Azure.

Per ottenere il nome DNS del gateway applicazione, recuperare i dettagli del gateway applicazione e il nome DNS e l'IP associati usando l'elemento PublicIPAddress collegato al gateway applicazione.To get the application gateway DNS name, retrieve the details of the application gateway and its associated IP/DNS name by using the PublicIPAddress element attached to the application gateway. Usare il nome DNS del gateway applicazione per creare un record CNAME che associ le due applicazioni Web a questo nome DNS.Use the application gateway's DNS name to create a CNAME record, which points the two web applications to this DNS name. Non è consigliabile usare record A perché l'indirizzo VIP può cambiare al riavvio del gateway applicazione.We don't recommend the use of A-records, because the VIP can change on restart of the application gateway.

Get-AzureRmPublicIpAddress -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"
                            }

Passaggi successiviNext steps

Per configurare un gateway applicazione da usare con un servizio di bilanciamento del carico interno, vedere Creare un gateway applicazione con un servizio di bilanciamento del carico interno.If you want to configure an application gateway to use with an internal load balancer, see Create an application gateway with an internal load balancer.

Per altre informazioni generali sulle opzioni di bilanciamento del carico, vedere:For more information about load-balancing options in general, see: