Skydda ett anpassat DNS-namn med en TLS/SSL-bindning i Azure App Service

Den här artikeln visar hur du skyddar den anpassade domänen i din App Service-app eller funktionsapp genom att skapa en certifikatbindning. 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).

Webbapp med anpassat TLS/SSL-certifikat

Att skydda en anpassad domän med ett certifikat omfattar två steg:

I den här guiden får du lära dig att:

  • Uppgradera prisnivån för din app
  • Skydda en anpassad domän med ett certifikat
  • Använda HTTPS
  • Använda TLS 1.1/1.2
  • Automatisera hantering av TLS med skript

Förutsättningar

Så här följer du den här guiden:

Anteckning

Det enklaste sättet att lägga till ett privat certifikat är att skapa ett kostnadsfritt App Service hanterat certifikat.

Förbereda din webbapp

Om du vill skapa anpassade TLS/SSL-bindningar eller aktivera klientcertifikat för din App Service-app måste din App Service-plan vara på nivån Basic, Standard, Premium eller Isolerad. Följ dessa steg för att se till att webbappen finns på den prisnivå som stöds:

Gå till din webbapp

  1. I sökrutan Azure Portal letar du upp och väljer App Services.

    Skärmbild av Azure Portal, sökruta och App Services valt.

  2. På sidan App Services väljer du webbappens namn.

    Skärmbild av App Services-sidan i Azure Portal som visar en lista över alla webbappar som körs, med den första appen i listan markerad.

    Nu är du på webbappens hanteringssida.

Kontrollera prisnivån

  1. I den vänstra menyn för webbappen går du till avsnittet Inställningar och väljer Skala upp (App Service plan).

    Skärmbild av webbappmenyn, avsnittet

  2. Kontrollera att webbappen inte finns på nivån F1 eller D1 , som inte stöder anpassad TLS/SSL.

    Appens aktuella nivå markeras med en mörkblå ruta.

    Skärmbild av prisnivåinformation för webbappar.

  3. Om du behöver skala upp följer du stegen i nästa avsnitt. Annars stänger du sidan Skala upp och hoppar över avsnittet Skala upp din App Service plan.

Skala upp App Service-planen

  1. Välj valfri icke-kostnadsfri nivå, till exempel B1, B2, B3 eller någon annan nivå i kategorin Produktion . Om du vill ha fler alternativ väljer du Se ytterligare alternativ.

  2. När du är klar väljer du Använd.

    Skärmbild av prisnivån och

    När följande meddelande visas har skalningsåtgärden slutförts.

    Skärmbild med bekräftelsemeddelande för uppskalningsåtgärd.

Skydda en anpassad domän

Gör följande:

I Azure Portal går du till den vänstra menyn och väljer App Services><appnamn>.

Starta dialogrutan TLS/SSL-bindning i det vänstra navigeringsfönstret i appen genom att:

  • Välja Anpassade domäner>Lägg till bindning
  • Välja TLS/SSL-inställningar>Lägg till TLS/SSL-bindning

Lägga till bindning till domän

I Custom Domain väljer du den anpassade domän som du vill lägga till en bindning för.

Om din app redan har ett certifikat för den valda anpassade domänen går du till Skapa bindning direkt. Annars fortsätter du.

Lägga till ett certifikat för en anpassad domän

Om din app inte har något certifikat för den valda anpassade domänen har du två alternativ:

Anteckning

Du kan också skapa ett kostnadsfritt certifikat eller importera ett Key Vault certifikat, men du måste göra det separat och sedan återgå till dialogrutan TLS/SSL-bindning.

Skapa bindning

Använd följande tabell för att konfigurera TLS-bindningen i dialogrutan TLS/SSL-bindning och klicka sedan på Lägg till bindning.

Inställning Beskrivning
Anpassad domän Domännamnet som TLS/SSL-bindningen ska läggas till för.
Tumavtryck för privat certifikat Certifikatet som ska bindas.
TLS/SSL-typ
  • SNI SSL – Flera SNI SSL-bindningar kan läggas till. Med det här alternativet kan flera TLS/SSL-certifikat skydda flera domäner på samma IP-adress. De flesta moderna webbläsare (inklusive Internet Explorer, Chrome, Firefox och Opera) stöder SNI (mer information finns i Servernamnindikator).
  • IP SSL – Endast en IP SSL-bindning kan läggas till. Med det här alternativet kan endast ett TLS/SSL-certifikat skydda en dedikerad offentlig IP-adress. När du har konfigurerat bindningen följer du stegen i Mappa om poster för IP SSL.
    IP SSL stöds endast på standardnivån eller högre.

När åtgärden är klar ändras den anpassade domänens TLS/SSL-tillstånd till Säker.

TLS/SSL-bindning lyckades

Anteckning

Ett säkert tillstånd i anpassade domäner innebär att det skyddas med ett certifikat, men App Service kontrollerar inte om certifikatet är självsignerat eller har upphört att gälla, till exempel, vilket också kan orsaka att webbläsare visar ett fel eller en varning.

Mappa om poster för IP SSL

Om du inte använder IP SSL i din app går du vidare till Testa HTTPS för din anpassade domän.

Det finns två ändringar som du behöver göra, potentiellt:

  • Som standard använder din app en delad offentlig IP-adress. När du binder ett certifikat med IP SSL skapar App Service en ny dedikerad IP-adress för din app. Om du har mappat en A-post till din app uppdaterar du ditt domänregister med den här nya dedikerade IP-adressen.

    Din apps Anpassad domän-sida uppdateras med den nya dedikerade IP-adressen. Kopiera den här IP-adressen och mappa om A-posten till den nya IP-adressen.

  • Om du har en SNI SSL-bindning till <app-name>.azurewebsites.netmappar du om eventuell CNAME-mappning så att den pekar på sni.<app-name>.azurewebsites.net i stället (lägg till prefixet sni ).

Testa HTTPS

I olika webbläsare bläddrar du till https://<your.custom.domain> för att kontrollera att appen fungerar.

Skärmbild som visar ett exempel på hur du bläddrar till din anpassade domän med contoso.com-URL:en markerad.

Programkoden kan inspektera protokollet via rubriken "x-appservice-proto". Rubriken har värdet http eller https.

Anteckning

Om din app visar fel i certifikatverifieringen så använder du förmodligen ett självsignerat certifikat.

Om detta inte är fallet kan du ha utelämnat mellanliggande certifikat när du exporterade certifikatet till PFX-filen.

Förhindra IP-ändringar

Din inkommande IP-adress kan ändras när du tar bort en bindning, även om bindningen är IP SSL. Detta är särskilt viktigt när du förnyar ett certifikat som redan finns i en IP SSL-bindning. Du kan förhindra att appens IP-adress ändras genom att följa stegen nedan i ordning:

  1. Ladda upp det nya certifikatet.
  2. Bind det nya certifikatet till önskad anpassad domän utan att ta bort det gamla. Med den här åtgärden ersätts bindningen i stället för att den gamla tas bort.
  3. Ta bort det gamla certifikatet.

Använda HTTPS

Välj TLS/SSL-inställningar i det vänstra navigeringsfönstret på appsidan. I Endast HTTPS väljer du .

Om du väljer Endast HTTPS innebär Av det att vem som helst fortfarande kan komma åt din app via HTTP. Du kan omdirigera alla HTTP-begäranden till HTTPS-porten genom att välja .

Framtvinga HTTPS

När åtgärden har slutförts går du till någon av de HTTP-webbadresser som pekar på din app. Exempel:

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

Framtvinga TLS-version

Din app tillåter TLS 1.2 som standard, vilket är den rekommenderade TLS-nivån enligt branschstandarder, t.ex. PCI DSS. Följ dessa steg om du vill genomdriva en högre TLS-version:

Välj TLS/SSL-inställningar i det vänstra navigeringsfönstret på appsidan. I TLS-version väljer du sedan den lägsta TLS-version du vill använda. Den här inställningen styr endast inkommande samtal.

Kräv TLS 1.1 eller 1.2

När åtgärden är klar avvisar appen alla anslutningar med lägre TLS-version.

Hantera TLS-avslutning

I App Service sker TLS-avslutning vid nätverksbelastningsbalanserarna, så alla HTTPS-begäranden når din app som okrypterade HTTP-begäranden. Om din applogik behöver kontrollera om användarbegäranden är krypterade eller inte kan du kontrollera X-Forwarded-Proto-rubriken.

Språkspecifika konfigurationsguider, till exempel konfigurationsguiden för Linux Node.js , visar hur du identifierar en HTTPS-session i programkoden.

Automatisera med skript

Azure CLI

Binda ett anpassat TLS/SSL-certifikat till en webbapp

PowerShell

$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 resurser