Dela via


Ange säkerhet för ett anpassat DNS-namn med en TLS/SSL-bindning i App Service

Den här artikeln visar hur du ger säkerhet för 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 vid https:// slutpunkten för ditt anpassade DNS-namn (till exempel https://www.contoso.com).

Webbapp med anpassat TLS/SSL-certifikat.

Förutsättningar

Lägg till bindningen

I Azure Portal:

  1. Välj App Services-appnamn<>> på den vänstra menyn.

  2. I det vänstra navigeringsfältet i din app 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 apptjänsthanterat certifikat – Låt App Service skapa ett hanterat certifikat för den valda domänen. Det här alternativet är det enklaste alternativet. 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 på 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 antingen SNI SSL eller 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 Microsoft Edge, Chrome, Firefox och Opera) stöder SNI. (Mer information finns i Indikering av servernamn.)
    • IP-baserad SSL: Endast en IP SSL-bindning kan läggas till. Det här alternativet tillåter endast ett TLS/SSL-certifikat för att skydda en dedikerad offentlig IP-adress. När du har konfigurerat bindningen följer du stegen i Mappa om poster för IP-baserad SSL.
      IP-baserad SSL stöds endast på standardnivå eller högre.
  6. När du lägger till ett nytt certifikat verifierar du det nya certifikatet genom att välja Verifiera.

  7. Markera Lägga till.

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

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

Kommentar

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

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.

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

  • 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 domänregistret 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 en CNAME-mappning så att den pekar på sni.<app-name>.azurewebsites.net i stället. (Lägg till prefixet sni .)

Testa HTTPS

Bläddra till https://<your.custom.domain> i olika webbläsare för att kontrollera att din app visas.

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

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

Kommentar

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

Om så 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. Följ dessa steg för att undvika ändringar i appens IP-adress:

  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 tvingar 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 lägsta TLS-versioner 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 i nätverkslastbalanserarna, 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 kontrollerar du X-Forwarded-Proto huvudet.

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