Associare un certificato SSL personalizzato a un'app per le funzioniBind a custom SSL certificate to a function app

Questo script di esempio crea un'app per le funzioni nel servizio app con le relative risorse correlate, quindi associa a essa il certificato SSL di un nome di dominio personalizzato.This sample script creates a function app in App Service with its related resources, then binds the SSL certificate of a custom domain name to it. Per questo esempio è necessario:For this sample, you need:

  • Accesso alla pagina di configurazione DNS del registrar.Access to your domain registrar's DNS configuration page.
  • File PFX valido e relativa password per il certificato SSL da caricare e associare.A valid .PFX file and its password for the SSL certificate you want to upload and bind.

Per associare un certificato SSL, è necessario creare l'app per le funzioni in un piano di servizio app e non in un piano a consumo.To bind an SSL certificate, your function app must be created in an App Service plan and not in a consumption plan.

Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.If you don't have an Azure subscription, create a free account before you begin.

Aprire Azure Cloud ShellOpen Azure Cloud Shell

Azure Cloud Shell è una shell interattiva gratuita che può essere usata per eseguire la procedura di questo articolo.Azure Cloud Shell is a free, interactive shell that you can use to run the steps in this article. Gli strumenti comuni di Azure sono preinstallati e configurati in Cloud Shell per l'uso con l'account.Common Azure tools are preinstalled and configured in Cloud Shell for you to use with your account. È sufficiente selezionare il pulsante Copia per copiare il codice, incollarlo in Cloud Shell e quindi premere INVIO per eseguirlo.Just select the Copy button to copy the code, paste it in Cloud Shell, and then press Enter to run it. Esistono alcuni modi per aprire Cloud Shell:There are a few ways to open Cloud Shell:

Selezionare Prova nell'angolo superiore destro di un blocco di codice.Select Try It in the upper-right corner of a code block. Cloud Shell in questo articolo
Aprire Cloud Shell nel browser.Open Cloud Shell in your browser. https://shell.azure.com/bash
Selezionare il pulsante Cloud Shell nel menu nell'angolo superiore destro del portale di Azure.Select the Cloud Shell button on the menu in the upper-right corner of the Azure portal. Cloud Shell nel portale

Se si sceglie di installare e usare l'interfaccia della riga di comando in locale, è necessario eseguire l'interfaccia della riga di comando di Azure 2.0 o versione successiva.If you choose to install and use the CLI locally, you must be running the Azure CLI version 2.0 or later. Eseguire az --version per trovare la versione.Run az --version to find the version. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure 2.0.If you need to install or upgrade, see Install Azure CLI 2.0.

Script di esempioSample script

#!/bin/bash

# Function app and storage account names must be unique.
storageName=mystorageaccount$RANDOM
functionAppName=myconsumptionfunc$RANDOM

# TODO:
# Before starting, go to your DNS configuration UI for your custom domain and follow the 
# instructions at https://aka.ms/appservicecustomdns to configure an A record 
# and point it your web app's default domain name. 
fqdn=<Replace with www.{yourcustomdomain}>
pfxPath=<Replace with path to your .PFX file>
pfxPassword=<Replace with your .PFX password>

# Create a resource resourceGroupName
az group create \
  --name myResourceGroup \
  --location westeurope

# Create an azure storage account
az storage account create \
  --name $storageName \
  --location westeurope \
  --resource-group myResourceGroup \
  --sku Standard_LRS

# Create an App Service plan in Basic tier (minimum required by custom domains).
az appservice plan create \
  --name FunctionAppWithAppServicePlan \
  --location westeurope \
  --resource-group myResourceGroup \
  --sku B1

# Create a Function App
az functionapp create \
  --name $functionAppName \
  --storage-account $storageName \
  --plan FunctionAppWithAppServicePlan \
  --resource-group myResourceGroup

# Map your prepared custom domain name to the function app.
az functionapp config hostname add \
  --name $functionAppName \
  --resource-group myResourceGroup \
  --hostname $fqdn

# Upload the SSL certificate and get the thumbprint.
thumbprint=$(az functionapp config ssl upload --certificate-file $pfxPath \
--certificate-password $pfxPassword --name $functionAppName --resource-group myResourceGroup \
--query thumbprint --output tsv)

# Binds the uploaded SSL certificate to the function app.
az functionapp config ssl bind \
  --certificate-thumbprint $thumbprint \
  --ssl-type SNI \
  --name $functionAppName \
  --resource-group myResourceGroup

echo "You can now browse to https://$fqdn"

Pulire la distribuzioneClean up deployment

Dopo l'esecuzione dello script di esempio, è possibile usare il comando seguente per rimuovere il gruppo di risorse e tutte le risorse ad esso associate.After the sample script has been run, the following command can be used to remove the resource group and all resources associated with it.

az group delete --name myResourceGroup

Spiegazione dello scriptScript explanation

Questo script usa i comandi seguenti.This script uses the following commands. Ogni comando della tabella include collegamenti alla documentazione specifica del comando.Each command in the table links to command specific documentation.

ComandoCommand NoteNotes
az group createaz group create Consente di creare un gruppo di risorse in cui sono archiviate tutte le risorse.Creates a resource group in which all resources are stored.
az appservice plan createaz appservice plan create Crea un piano di servizio app necessario per associare i certificati SSL.Creates an App Service plan required to bind SSL certificates.
az functionapp createaz functionapp create Creare un'app per le funzioni.Creates a function app.
az appservice web config hostname addaz appservice web config hostname add Esegue il mapping di un dominio personalizzato all'app per le funzioni.Maps a custom domain to the function app.
az appservice web config ssl uploadaz appservice web config ssl upload Carica un certificato SSL in un'app per le funzioni.Uploads an SSL certificate to a function app.
az appservice web config ssl bindaz appservice web config ssl bind Associa un certificato SSL caricato a un'app per le funzioni.Binds an uploaded SSL certificate to a function app.

Passaggi successiviNext steps

Per altre informazioni sull'interfaccia della riga di comando di Azure, vedere la documentazione sull'interfaccia della riga di comando di Azure.For more information on the Azure CLI, see Azure CLI documentation.

Altri esempi di script dell'interfaccia della riga di comando del servizio app sono disponibili nella documentazione del servizio app di Azure.Additional App Service CLI script samples can be found in the Azure App Service documentation.