Skydda ett anpassat DNS-namn med en SSL-bindning i Azure App ServiceSecure a custom DNS name with an SSL binding in Azure App Service

Den här artikeln visar hur du skyddar den anpassade domänen i din App Service app eller Function-app genom att skapa en certifikat bindning.This article shows you how to secure the custom domain in your App Service app or function app by creating a certificate binding. När du är klar kan du komma åt din App Service-app på https://-slutpunkten för ditt anpassade DNS-namn (till exempel https://www.contoso.com).When you're finished, you can access your App Service app at the https:// endpoint for your custom DNS name (for example, https://www.contoso.com).

Webbapp med anpassat SSL-certifikat

Att skydda en anpassad domän med ett certifikat innebär två steg:Securing a custom domain with a certificate involves two steps:

I den här guiden får du lära dig att:In this tutorial, you learn how to:

  • Uppgradera appens prisnivåUpgrade your app's pricing tier
  • Skydda en anpassad domän med ett certifikatSecure a custom domain with a certificate
  • Använda HTTPSEnforce HTTPS
  • Använda TLS 1.1/1.2Enforce TLS 1.1/1.2
  • Automatisera hantering av TLS med skriptAutomate TLS management with scripts

KravPrerequisites

För att följa den här instruktions guiden:To follow this how-to guide:

Anteckning

Det enklaste sättet att lägga till ett privat certifikat är att skapa ett kostnads fritt App Service-hanterat certifikat (förhands granskning).The easiest way to add a private certificate is to create a free App Service Managed Certificate (Preview).

Förbereda din webbappPrepare your web app

Om du vill binda ett anpassat SSL-certifikat (ett tredjepartscertifikat eller App Service-certifikat) till webbappen måste din App Service plan ha nivån Basic, Standard, Premium eller Isolerad.To bind a custom SSL certificate (a third-party certificate or App Service certificate) to your web app, your App Service plan must be in the Basic, Standard, Premium, or Isolated tier. I det här steget ser du till att webbappen har en prisnivå som stöds.In this step, you make sure that your web app is in the supported pricing tier.

Logga in på AzureSign in to Azure

Öppna Azure-portalen.Open the Azure portal.

Sök efter och välj app Services.Search for and select App Services.

Välj App Services

På sidan app Services väljer du namnet på din Azure-App.On the App Services page, select the name of your Azure app.

Portalnavigering till Azure-app

Du har kommit till hanteringssidan för din webbapp.You have landed in the management page of your web app.

Kontrollera prisnivånCheck the pricing tier

I det vänstra navigeringsfältet på webbappsidan bläddrar du till avsnittet Inställningar och väljer Skala upp (App Service-plan) .In the left-hand navigation of your web app page, scroll to the Settings section and select Scale up (App Service plan).

Skala upp-menyn

Kontrollera att webbappen inte är på nivån F1 eller D1.Check to make sure that your web app is not in the F1 or D1 tier. Appens aktuella nivå markeras med en mörkblå ruta.Your web app's current tier is highlighted by a dark blue box.

Kontrollera prisnivå

Anpassat SSL stöds inte på nivån F1 eller D1.Custom SSL is not supported in the F1 or D1 tier. Om du behöver skala upp följer du stegen i nästa avsnitt.If you need to scale up, follow the steps in the next section. I annat fall stängs sidan Skala upp och hoppar över avsnittet Skala upp App Service-planen.Otherwise, close the Scale up page and skip the Scale up your App Service plan section.

Skala upp App Service-planenScale up your App Service plan

Välj någon av betalnivåerna (B1, B2, B3 eller någon nivå i kategorin Produktion).Select any of the non-free tiers (B1, B2, B3, or any tier in the Production category). Klicka på Visa ytterligare alternativ om du vill se fler alternativ.For additional options, click See additional options.

Klicka på Verkställ.Click Apply.

Välja prisnivå

När du ser följande meddelande har skalningsåtgärden slutförts.When you see the following notification, the scale operation is complete.

Uppskalningsmeddelande

Skydda en anpassad domänSecure a custom domain

Gör så här:Do the following steps:

I Azure Portalväljer du app Services > <App-Name > på menyn till vänster.In the Azure portal, from the left menu, select App Services > <app-name>.

Starta dialog rutan TLS/SSL-bindning från den vänstra navigeringen i din app genom att:From the left navigation of your app, start the TLS/SSL Binding dialog by:

  • Välja anpassade domäner > Lägg till bindningSelecting Custom domains > Add binding
  • Välja TLS/SSL-inställningar > Lägg till TLS/SSL-bindningSelecting TLS/SSL settings > Add TLS/SSL binding

Lägg till bindning till domän

I anpassad domänväljer du den anpassade domän som du vill lägga till en bindning för.In Custom Domain, select the custom domain you want to add a binding for.

Om din app redan har ett certifikat för den valda anpassade domänen går du till skapa bindning direkt.If your app already has a certificate for the selected custom domain, go to Create binding directly. Annars fortsätter du.Otherwise, keep going.

Lägg till ett certifikat för anpassad domänAdd a certificate for custom domain

Om din app inte har något certifikat för den valda anpassade domänen har du två alternativ:If your app has no certificate for the selected custom domain, then you have two options:

Anteckning

Du kan också skapa ett kostnads fritt certifikat (förhands granskning) eller Importera ett Key Vault certifikat, men du måste göra det separat och sedan gå tillbaka till dialog rutan TLS/SSL-bindning .You can also Create a free certificate (Preview) or Import a Key Vault certificate, but you must do it separately and then return to the TLS/SSL Binding dialog.

Skapa bindningCreate binding

Använd följande tabell som hjälp för att konfigurera SSL-bindningen i dialog rutan TLS/SSL-bindning och klicka sedan på Lägg till bindning.Use the following table to help you configure the SSL binding in the TLS/SSL Binding dialog, then click Add Binding.

InställningSetting BeskrivningDescription
Egen domänCustom domain Domän namnet som SSL-bindningen ska läggas till för.The domain name to add the SSL binding for.
Tumavtryck för privat certifikatPrivate Certificate Thumbprint Certifikatet som ska bindas.The certificate to bind.
TLS/SSL-typTLS/SSL Type
  • SNI SSL -flera SNI SSL-bindningar kan läggas till.SNI SSL - Multiple SNI SSL bindings may be added. Med det här alternativet kan flera SSL-certifikat skydda flera domäner på samma IP-adress.This option allows multiple SSL certificates to secure multiple domains on the same IP address. De flesta moderna webbläsare (inklusive Internet Explorer, Chrome, Firefox och Opera) stöder SNI (mer information finns i servernamnindikator).Most modern browsers (including Internet Explorer, Chrome, Firefox, and Opera) support SNI (for more information, see Server Name Indication).
  • IP SSL -det går bara att lägga till en IP SSL-bindning.IP SSL - Only one IP SSL binding may be added. Med det här alternativet tillåts endast ett SSL-certifikat för att skydda en dedikerad offentlig IP-adress.This option allows only one SSL certificate to secure a dedicated public IP address. När du har konfigurerat bindningen följer du stegen i mappa om en post för IP SSL.After you configure the binding, follow the steps in Remap A record for IP SSL.
    IP SSL stöds endast i produktions-eller isolerade nivåer.IP SSL is supported only in Production or Isolated tiers.

När åtgärden har slutförts ändras SSL-statusen för den anpassade domänen till säker.Once the operation is complete, the custom domain's SSL state is changed to Secure.

SSL-bindningen lyckades

Anteckning

Ett säkert tillstånd i de anpassade domänerna innebär att den skyddas med ett certifikat, men App Service inte kontrollerar om certifikatet är självsignerat eller har upphört att gälla, till exempel, vilket även kan leda till att webbläsare visar ett fel eller en varning.A Secure state in the Custom domains means that it is secured with a certificate, but App Service doesn't check if the certificate is self-signed or expired, for example, which can also cause browsers to show an error or warning.

Mappa om en A-post för IP SSLRemap A record for IP SSL

Om du inte använder IP SSL i din app kan du gå vidare till testa https för din anpassade domän.If you don't use IP SSL in your app, skip to Test HTTPS for your custom domain.

Som standard använder din app en delad offentlig IP-adress.By default, your app uses a shared public IP address. När du binder ett certifikat med IP SSL skapar App Service en ny, dedikerad IP-adress för din app.When you bind a certificate with IP SSL, App Service creates a new, dedicated IP address for your app.

Om du har mappat en A-post till din app uppdaterar du domän registret med den nya, dedikerade IP-adressen.If you mapped an A record to your app, update your domain registry with this new, dedicated IP address.

Din apps Anpassad domän-sida uppdateras med den nya dedikerade IP-adressen.Your app's Custom domain page is updated with the new, dedicated IP address. Kopiera den här IP-adressen och mappa om A-posten till den nya IP-adressen.Copy this IP address, then remap the A record to this new IP address.

Testa HTTPSTest HTTPS

I olika webbläsare bläddrar du till https://<your.custom.domain> för att kontrol lera att appen fungerar.In various browsers, browse to https://<your.custom.domain> to verify that it serves up your app.

Portalnavigering till Azure-app

Din program kod kan inspektera protokollet via huvudet "x-AppService-proto".Your application code can inspect the protocol via the "x-appservice-proto" header. Rubriken har värdet http eller https.The header will have a value of http or https.

Anteckning

Om din app visar fel i certifikatverifieringen så använder du förmodligen ett självsignerat certifikat.If your app gives you certificate validation errors, you're probably using a self-signed certificate.

Om detta inte är fallet kan du ha utelämnat mellanliggande certifikat när du exporterade certifikatet till PFX-filen.If that's not the case, you may have left out intermediate certificates when you export your certificate to the PFX file.

Förhindra IP-ändringarPrevent IP changes

Din inkommande IP-adress kan ändras när du tar bort en bindning, även om denna bindning är IP SSL.Your inbound IP address can change when you delete a binding, even if that binding is IP SSL. Detta är särskilt viktigt när du förnyar ett certifikat som redan finns i en IP SSL-bindning.This is especially important when you renew a certificate that's already in an IP SSL binding. Du kan förhindra att appens IP-adress ändras genom att följa stegen nedan i ordning:To avoid a change in your app's IP address, follow these steps in order:

  1. Ladda upp det nya certifikatet.Upload the new certificate.
  2. Bind det nya certifikatet till önskad anpassad domän utan att ta bort det gamla.Bind the new certificate to the custom domain you want without deleting the old one. Med den här åtgärden ersätts bindningen i stället för att den gamla tas bort.This action replaces the binding instead of removing the old one.
  3. Ta bort det gamla certifikatet.Delete the old certificate.

Använda HTTPSEnforce HTTPS

Som standard kan alla fortfarande komma åt din app med HTTP.By default, anyone can still access your app using HTTP. Du kan omdirigera alla HTTP-begäranden till HTTPS-porten.You can redirect all HTTP requests to the HTTPS port.

Välj SSL-inställningar i den vänstra navigeringen på din appsida.In your app page, in the left navigation, select SSL settings. I Endast HTTPS väljer du .Then, in HTTPS Only, select On.

Använda HTTPS

När åtgärden har slutförts går du till någon av de HTTP-webbadresser som pekar på din app.When the operation is complete, navigate to any of the HTTP URLs that point to your app. Exempel:For example:

  • http://<app_name>.azurewebsites.net
  • http://contoso.com
  • http://www.contoso.com

Framtvinga TLS-versionEnforce TLS versions

Din app tillåter TLS 1.2 som standard, vilket är den rekommenderade TLS-nivån enligt branschstandarder, t.ex. PCI DSS.Your app allows TLS 1.2 by default, which is the recommended TLS level by industry standards, such as PCI DSS. Följ dessa steg om du vill genomdriva en högre TLS-version:To enforce different TLS versions, follow these steps:

Välj SSL-inställningar i den vänstra navigeringen på din appsida.In your app page, in the left navigation, select SSL settings. I TLS-version väljer du sedan den lägsta TLS-version du vill använda.Then, in TLS version, select the minimum TLS version you want. Den här inställningen styr endast inkommande samtal.This setting controls the inbound calls only.

Kräv TLS 1.1 eller 1.2

När åtgärden är klar avvisar appen alla anslutningar med lägre TLS-version.When the operation is complete, your app rejects all connections with lower TLS versions.

Automatisera med skriptAutomate with scripts

Azure CLIAzure CLI

#!/bin/bash

fqdn=<replace-with-www.{yourdomain}>
pfxPath=<replace-with-path-to-your-.PFX-file>
pfxPassword=<replace-with-your=.PFX-password>
resourceGroup=myResourceGroup
webappname=mywebapp$RANDOM

# Create a resource group.
az group create --location westeurope --name $resourceGroup

# Create an App Service plan in Basic tier (minimum required by custom domains).
az appservice plan create --name $webappname --resource-group $resourceGroup --sku B1

# Create a web app.
az webapp create --name $webappname --resource-group $resourceGroup \
--plan $webappname

echo "Configure a CNAME record that maps $fqdn to $webappname.azurewebsites.net"
read -p "Press [Enter] key when ready ..."

# Before continuing, go to your DNS configuration UI for your custom domain and follow the 
# instructions at https://aka.ms/appservicecustomdns to configure a CNAME record for the 
# hostname "www" and point it your web app's default domain name.

# Map your prepared custom domain name to the web app.
az webapp config hostname add --webapp-name $webappname --resource-group $resourceGroup \
--hostname $fqdn

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

# Binds the uploaded SSL certificate to the web app.
az webapp config ssl bind --certificate-thumbprint $thumbprint --ssl-type SNI \
--name $webappname --resource-group $resourceGroup

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

PowerShellPowerShell

$fqdn="<Replace with your custom domain name>"
$pfxPath="<Replace with path to your .PFX file>"
$pfxPassword="<Replace with your .PFX password>"
$webappname="mywebapp$(Get-Random)"
$location="West Europe"

# Create a resource group.
New-AzResourceGroup -Name $webappname -Location $location

# Create an App Service plan in Free tier.
New-AzAppServicePlan -Name $webappname -Location $location `
-ResourceGroupName $webappname -Tier Free

# Create a web app.
New-AzWebApp -Name $webappname -Location $location -AppServicePlan $webappname `
-ResourceGroupName $webappname

Write-Host "Configure a CNAME record that maps $fqdn to $webappname.azurewebsites.net"
Read-Host "Press [Enter] key when ready ..."

# Before continuing, go to your DNS configuration UI for your custom domain and follow the 
# instructions at https://aka.ms/appservicecustomdns to configure a CNAME record for the 
# hostname "www" and point it your web app's default domain name.

# Upgrade App Service plan to Basic tier (minimum required by custom SSL certificates)
Set-AzAppServicePlan -Name $webappname -ResourceGroupName $webappname `
-Tier Basic

# Add a custom domain name to the web app. 
Set-AzWebApp -Name $webappname -ResourceGroupName $webappname `
-HostNames @($fqdn,"$webappname.azurewebsites.net")

# Upload and bind the SSL certificate to the web app.
New-AzWebAppSSLBinding -WebAppName $webappname -ResourceGroupName $webappname -Name $fqdn `
-CertificateFilePath $pfxPath -CertificatePassword $pfxPassword -SslState SniEnabled

Fler resurserMore resources