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

Förutsättningar

1. Lägg till bindningen

I Azure Portal:

  1. På den vänstra menyn väljer du App Services><appnamn>.

  2. I det vänstra navigeringsfältet i appen väljer du Anpassade domäner

  3. Bredvid den anpassade domänen väljer du Lägg till bindning

    En skärmbild som visar hur du startar dialogrutan Lägg till TLS/SSL-bindning.

  4. Om din app redan har ett certifikat för den valda anpassade domänen kan du välja det i Certifikat. Annars måste du lägga till ett certifikat med något av valen i Källa.

    • Skapa App Service hanterat certifikat – Låt App Service skapa ett hanterat certifikat för den valda domänen. Det här alternativet är det enklaste. Mer information finns i Skapa ett kostnadsfritt hanterat certifikat.
    • Importera App Service-certifikat – I App Service certifikat väljer du ett App Service certifikat som du har köpt för den valda domänen.
    • Ladda upp certifikat (.pfx) – Följ arbetsflödet i Ladda upp ett privat certifikat för att ladda upp ett PFX-certifikat från den lokala datorn och ange certifikatlösenordet.
    • Importera från Key Vault – Välj Välj nyckelvalvscertifikat och välj certifikatet i dialogrutan.
  5. I TLS/SSL-typ väljer du mellan SNI SSL och IP-baserad SSL.

    • 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-baserad 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 2. Mappa om poster för IP-baserad SSL.
        IP SSL stöds endast på Basic-nivå eller högre.
  6. När du lägger till ett nytt certifikat verifierar du det nya certifikatet genom att välja Verifiera.

  7. Välj Lägg till.

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

    En skärmbild som visar den anpassade domänen som skyddas av en certifikatbindning.

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.

2. Mappa om poster för IP-baserad SSL

Det här steget behövs bara för IP-baserad SSL. För en SNI SSL-bindning 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 sedan 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 ).

3. 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.

Vanliga frågor och svar

Hur gör jag för att kontrollera att appens IP-adress inte ändras när jag gör ändringar i certifikatbindningen?

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.

Kan jag inaktivera den framtvingade omdirigeringen från HTTP till HTTPS?

Som standard framtvingar App Service en omdirigering från HTTP-begäranden till HTTPS. Information om hur du inaktiverar det här beteendet finns i Konfigurera allmänna inställningar.

Hur ändrar jag de lägsta TLS-versionerna för appen?

Din app tillåter TLS 1.2 som standard, vilket är den rekommenderade TLS-nivån enligt branschstandarder, t.ex. PCI DSS. Information om hur du framtvingar olika TLS-versioner finns i Konfigurera allmänna inställningar.

Hur gör jag för att hantera TLS-avslutning i App Service?

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.
$webapp = New-AzWebApp -Name $webappname -Location $location -AppServicePlan $webappname `
-ResourceGroupName $webappname

Write-Host "Sign in to your domain provider's website and configure the following records:"
Write-Host "A CNAME record that maps $fqdn to $webappname.azurewebsites.net"
Write-Host "A TXT record that maps asuid.$fqdn to the domain verification ID $($webapp.CustomDomainVerificationId)"
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