Configurare un gateway applicazione per l'offload SSL tramite il modello di distribuzione classicaConfigure an application gateway for SSL offload by using the classic deployment model

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. Assicurarsi di avere una rete virtuale funzionante con una subnet valida.Verify that you have a working virtual network with a valid subnet. 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/VIP pubblico assegnato.The servers that you configure to use the application gateway must exist or have their endpoints that are created either in the virtual network or with a public IP address or virtual IP address (VIP) assigned.

Per configurare l'offload SSL in un gateway applicazione, completare i passaggi seguenti nell'ordine elencato:To configure SSL offload on an application gateway, complete the following steps in the order listed:

  1. Creare un gateway applicazioneCreate an application gateway
  2. Caricare i certificati SSLUpload SSL certificates
  3. Configurare il gatewayConfigure the gateway
  4. Definire la configurazione del gatewaySet the gateway configuration
  5. Avviare il gatewayStart the gateway
  6. Verificare lo stato del gatewayVerify the gateway status

Creare un gateway applicazioneCreate an application gateway

Per creare il gateway, immettere il cmdlet New-AzureApplicationGateway, sostituendo i valori esistenti con quelli personalizzati.To create the gateway, enter the New-AzureApplicationGateway cmdlet, replacing the values with your own. La fatturazione per il gateway non viene applicata a partire da questo punto.Billing for the gateway does not start at this point. La fatturazione viene applicata a partire da un passaggio successivo, dopo l'avvio corretto del gateway.Billing begins in a later step, when the gateway is successfully started.

New-AzureApplicationGateway -Name AppGwTest -VnetName testvnet1 -Subnets @("Subnet-1")

Per convalidare la creazione del gateway, è possibile immettere il cmdlet Get-AzureApplicationGateway.To validate that the gateway was created, you can enter the Get-AzureApplicationGateway cmdlet.

In questo esempio Description, InstanceCount e GatewaySize sono parametri facoltativi.In the sample, Description, InstanceCount, and GatewaySize are optional parameters. 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. Small e Large sono altri valori disponibili.Small and Large are other available values. VirtualIPs e DnsName vengono visualizzati vuoti perché il gateway non è stato ancora avviato.VirtualIPs and DnsName are shown as blank, because the gateway has not started yet. Questi valori vengono creati dopo che il gateway è in esecuzione.These values are created after the gateway is in the running state.

Get-AzureApplicationGateway AppGwTest

Caricare i certificati SSLUpload SSL certificates

Immettere Add-AzureApplicationGatewaySslCertificate per caricare il certificato del server in formato pfx nel gateway applicazione.Enter Add-AzureApplicationGatewaySslCertificate to upload the server certificate in PFX format to the application gateway. Il nome del certificato è un nome scelto dall'utente e deve essere univoco all'interno del gateway applicazione.The certificate name is a user-chosen name and must be unique within the application gateway. Il certificato viene identificato da questo nome in tutte le operazioni di gestione del certificato nel gateway applicazione.This certificate is referred to by this name in all certificate management operations on the application gateway.

L'esempio seguente mostra il cmdlet.The following sample shows the cmdlet. Sostituire i valori nell'esempio con valori personalizzati.Replace the values in the sample with your own.

Add-AzureApplicationGatewaySslCertificate  -Name AppGwTest -CertificateName GWCert -Password <password> -CertificateFile <full path to pfx file>

Successivamente, convalidare il caricamento del certificato.Next, validate the certificate upload. Immettere il cmdlet Get-AzureApplicationGatewayCertificate.Enter the Get-AzureApplicationGatewayCertificate cmdlet.

L'esempio seguente mostra il cmdlet sulla prima riga seguito dall'output:The following sample shows the cmdlet on the first line, followed by the output:

Get-AzureApplicationGatewaySslCertificate AppGwTest
VERBOSE: 5:07:54 PM - Begin Operation: Get-AzureApplicationGatewaySslCertificate
VERBOSE: 5:07:55 PM - Completed Operation: Get-AzureApplicationGatewaySslCertificate
Name           : SslCert
SubjectName    : CN=gwcert.app.test.contoso.com
Thumbprint     : AF5ADD77E160A01A6......EE48D1A
ThumbprintAlgo : sha1RSA
State..........: Provisioned

Nota

La password del certificato deve contenere da 4 a 12 caratteri, costituite da lettere o numeri.The certificate password must be between 4 to 12 characters made up of letters or numbers. Non sono ammessi caratteri speciali.Special characters are not accepted.

Configurare il gatewayConfigure the gateway

La configurazione di un gateway applicazione è costituita da più valori.An application gateway configuration consists of multiple values. È possibile collegare tra loro tali valori per creare la configurazione.The values can be tied together to construct the configuration.

I valori possibili sono:The values are:

  • 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 o VIP pubblici.The IP addresses listed should belong to the virtual network subnet or should be a public IP or VIP address.
  • 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 HTTPS, con distinzione tra maiuscole e minuscole) e il nome del certificato SSL (se si configura un offload SSL).Listener: The listener has a front-end port, a protocol (Http or Https; these values are case-sensitive), and the SSL certificate name (if configuring an 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 SslCert a HttpListener con il valore impostato sullo stesso nome usato nella sezione sul caricamento dei certificati SSL.Add the SslCert element to HttpListener with the value set to the same name used in the Upload SSL certificates section. 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.

È possibile definire la configurazione creando un oggetto di configurazione oppure usando un file XML di configurazione.You can construct your configuration either by creating a configuration object or by using a configuration XML file. Per creare la configurazione con un file XML di configurazione, immettere l'esempio seguente:To construct your configuration by using a configuration XML file, enter the following sample:

<?xml version="1.0" encoding="utf-8"?>
<ApplicationGatewayConfiguration xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/windowsazure">
    <FrontendIPConfigurations />
    <FrontendPorts>
        <FrontendPort>
            <Name>FrontendPort1</Name>
            <Port>443</Port>
        </FrontendPort>
    </FrontendPorts>
    <BackendAddressPools>
        <BackendAddressPool>
            <Name>BackendPool1</Name>
            <IPAddresses>
                <IPAddress>10.0.0.1</IPAddress>
                <IPAddress>10.0.0.2</IPAddress>
            </IPAddresses>
        </BackendAddressPool>
    </BackendAddressPools>
    <BackendHttpSettingsList>
        <BackendHttpSettings>
            <Name>BackendSetting1</Name>
            <Port>80</Port>
            <Protocol>Http</Protocol>
            <CookieBasedAffinity>Enabled</CookieBasedAffinity>
        </BackendHttpSettings>
    </BackendHttpSettingsList>
    <HttpListeners>
        <HttpListener>
            <Name>HTTPListener1</Name>
            <FrontendPort>FrontendPort1</FrontendPort>
            <Protocol>Https</Protocol>
            <SslCert>GWCert</SslCert>
        </HttpListener>
    </HttpListeners>
    <HttpLoadBalancingRules>
        <HttpLoadBalancingRule>
            <Name>HttpLBRule1</Name>
            <Type>basic</Type>
            <BackendHttpSettings>BackendSetting1</BackendHttpSettings>
            <Listener>HTTPListener1</Listener>
            <BackendAddressPool>BackendPool1</BackendAddressPool>
        </HttpLoadBalancingRule>
    </HttpLoadBalancingRules>
</ApplicationGatewayConfiguration>

Definire la configurazione del gatewaySet the gateway configuration

Configurare ora il gateway applicazione.Next, set the application gateway. È possibile immettere il cmdlet Set-AzureApplicationGatewayConfig con un oggetto di configurazione o con un file XML di configurazione.You can enter the Set-AzureApplicationGatewayConfig cmdlet with either a configuration object or a configuration XML file.

Set-AzureApplicationGatewayConfig -Name AppGwTest -ConfigFile D:\config.xml

Avviare il gatewayStart the gateway

Dopo la configurazione del gateway, immettere il cmdlet Start-AzureApplicationGateway per avviarlo.After the gateway has been configured, enter the Start-AzureApplicationGateway cmdlet to start the gateway. La fatturazione per un gateway applicazione verrà applicata a partire dall'avvio corretto del gateway.Billing for an application gateway begins after the gateway has been successfully started.

Nota

Il completamento del cmdlet Start-AzureApplicationGateway può richiedere 15-20 minuti.The Start-AzureApplicationGateway cmdlet can take 15-20 minutes to finish.

Start-AzureApplicationGateway AppGwTest

Verificare lo stato del gatewayVerify the gateway status

Immettere il cmdlet Get-AzureApplicationGateway per verificare lo stato del gateway.Enter the Get-AzureApplicationGateway cmdlet to check the status of the gateway. Se nel passaggio precedente l'operazione Start-AzureApplicationGateway è riuscita, lo stato (State) risulterà in esecuzione (Running) e le voci VirtualIPs e DnsName saranno valide.If Start-AzureApplicationGateway succeeded in the previous step, the State should be Running, and the VirtualIPs and DnsName should have valid entries.

Questo esempio illustra un gateway applicazione attivo, in esecuzione e pronto per accettare il traffico:This sample shows an application gateway that is up, running, and ready to take traffic:

Get-AzureApplicationGateway AppGwTest
Name          : AppGwTest2
Description   :
VnetName      : testvnet1
Subnets       : {Subnet-1}
InstanceCount : 2
GatewaySize   : Medium
State         : Running
VirtualIPs    : {23.96.22.241}
DnsName       : appgw-4c960426-d1e6-4aae-8670-81fd7a519a43.cloudapp.net

Passaggi successiviNext steps

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