Share via


Beveiliging bieden voor een aangepaste DNS-naam met een TLS/SSL-binding in App Service

In dit artikel wordt beschreven hoe u beveiliging kunt bieden voor het aangepaste domein in uw App Service-app of functie-app door een certificaatbinding te maken. Wanneer u klaar bent, hebt u toegang tot uw App Service-app op het https:// eindpunt voor uw aangepaste DNS-naam (bijvoorbeeld https://www.contoso.com).

Web-app met aangepast TLS/SSL-certificaat.

Vereisten

De binding toevoegen

In Azure Portal:

  1. Selecteer ><app-naam> in het linkermenu.

  2. Selecteer aangepaste domeinen in de linkernavigatiebalk van uw app.

  3. Selecteer Naast het aangepaste domein de optie Binding toevoegen.

    Een schermopname die laat zien hoe u het dialoogvenster TLS/SSL-binding toevoegen start.

  4. Als uw app al een certificaat voor het geselecteerde aangepaste domein heeft, kunt u deze selecteren in Certificaat. Zo niet, dan moet u een certificaat toevoegen met behulp van een van de selecties in bron.

    • Een beheerd App Service-certificaat maken: Laat App Service een beheerd certificaat maken voor uw geselecteerde domein. Deze optie is het eenvoudigst. Zie Een gratis beheerd certificaat maken voor meer informatie.
    • App Service-certificaat importeren- Selecteer in App Service Certificate een App Service-certificaat dat u hebt gekocht voor uw geselecteerde domein.
    • Certificaat uploaden (.pfx): volg de werkstroom bij Een privécertificaat uploaden om een PFX-certificaat te uploaden vanaf uw lokale computer en geef het certificaatwachtwoord op.
    • Importeren uit Key Vault : selecteer Sleutelkluiscertificaat selecteren en selecteer het certificaat in het dialoogvenster.
  5. Selecteer in TLS/SSL-type SNI SSL of OP IP gebaseerde SSL.

    • SNI SSL: Er kunnen meerdere SNI SSL-bindingen worden toegevoegd. Met deze optie kunnen meerdere TLS/SSL-certificaten meerdere domeinen op hetzelfde IP-adres beveiligen. De meeste moderne browsers (waaronder Microsoft Edge, Chrome, Firefox en Opera) ondersteunen SNI. (Zie voor meer informatie Aanduiding van servernaam.)
    • OP IP gebaseerde SSL: er kan slechts één IP SSL-binding worden toegevoegd. Met deze optie kan slechts één TLS/SSL-certificaat worden gebruikt om een toegewezen openbaar IP-adres te beveiligen. Nadat u de binding hebt geconfigureerd, volgt u de stappen in Records opnieuw toewijzen voor SSL op basis van IP.
      SSL op basis van IP wordt alleen ondersteund in de Standard-laag of hoger.
  6. Wanneer u een nieuw certificaat toevoegt, valideert u het nieuwe certificaat door Valideren te selecteren.

  7. Selecteer Toevoegen.

    Zodra de bewerking is voltooid, wordt de TLS/SSL-status van het aangepaste domein gewijzigd in Beveiligd.

    Een schermopname van het aangepaste domein dat wordt beveiligd door een certificaatbinding.

Notitie

Een beveiligde status in aangepaste domeinen betekent dat een certificaat beveiliging biedt, maar App Service controleert niet of het certificaat zelfondertekend of verlopen is, bijvoorbeeld, waardoor browsers ook een fout of waarschuwing kunnen weergeven.

Records opnieuw toewijzen voor OP IP gebaseerde SSL

Deze stap is alleen nodig voor SSL op basis van IP. Ga naar HTTPS testen voor een SNI SSL-binding.

Er zijn mogelijk twee wijzigingen die u moet aanbrengen:

  • Uw app maakt standaard gebruik van een gedeeld openbaar IP-adres. Wanneer u een certificaat met IP SSL verbindt, maakt App Service een nieuw, specifiek IP-adres voor uw app. Als u een A-record aan uw app hebt toegewezen, werkt u uw domeinregister bij met dit nieuwe, specifieke IP-adres.

    De pagina Aangepast domein van uw app wordt bijgewerkt met het nieuwe, specifieke IP-adres. Kopieer dit IP-adres en wijs de A-record vervolgens opnieuw toe aan dit nieuwe IP-adres.

  • Als u een SNI SSL-binding hebt, <app-name>.azurewebsites.netwijst u in plaats daarvan een CNAME-toewijzing opnieuw toe zodat deze sni.<app-name>.azurewebsites.net verwijst. (Voeg het sni voorvoegsel toe.)

HTTPS testen

Blader naar https://<your.custom.domain> in verschillende browsers om te controleren of uw app wordt weergegeven.

Schermopname van een voorbeeld van bladeren naar uw aangepaste domein. De contoso.com-URL is gemarkeerd.

Uw toepassingscode kan het protocol inspecteren via de x-appservice-proto header. De header heeft een waarde van http of https.

Notitie

Als uw app certificaatvalidatiefouten geeft, gebruikt u waarschijnlijk een zelfondertekend certificaat.

Als dat niet het geval is, hebt u mogelijk tussenliggende certificaten gelaten bij het exporteren van uw certificaat naar het PFX-bestand.

Veelgestelde vragen

Hoe kan ik ervoor zorgen dat het IP-adres van de app niet wordt gewijzigd wanneer ik wijzigingen aanbrengt in de certificaatbinding?

Uw inkomende IP-adres kan worden gewijzigd wanneer u een binding verwijdert, zelfs als die binding IP SSL is. Dit is vooral belangrijk wanneer u een certificaat vernieuwt dat zich al in een IP SSL-binding bevindt. Voer de volgende stappen uit om een wijziging in het IP-adres van uw app te voorkomen:

  1. Upload het nieuwe certificaat.
  2. Verbind het nieuwe certificaat aan het aangepaste domein dat u wilt, zonder het oude certificaat te verwijderen. Met deze actie wordt de oude binding vervangen en niet verwijderd.
  3. Verwijder het oude certificaat.

Kan ik de geforceerde omleiding van HTTP naar HTTPS uitschakelen?

Standaard dwingt App Service een omleiding van HTTP-aanvragen naar HTTPS af. Zie Algemene instellingen configureren om dit gedrag uit te schakelen.

Hoe kan ik de minimale TLS-versies voor de app wijzigen?

Voor uw app is standaard TLS 1.2 toegestaan, wat het aanbevolen TLS-niveau is volgens industrienormen zoals PCI DSS. Zie Algemene instellingen configureren als u verschillende TLS-versies wilt afdwingen.

Hoe kan ik TLS-beëindiging verwerken in App Service?

In App Service vindt TLS-beëindiging plaats in de load balancers voor het netwerk, zodat alle HTTPS-aanvragen uw app bereiken als niet-versleutelde HTTP-aanvragen. Als uw app-logica moet controleren of de gebruikersaanvragen zijn versleuteld, controleert u de X-Forwarded-Proto header.

Taalspecifieke configuratiehandleidingen, zoals de Configuratiehandleiding voor Linux Node.js , laten zien hoe u een HTTPS-sessie in uw toepassingscode kunt detecteren.

Automatiseren met scripts

Azure-CLI

Een aangepast TLS/SSL-certificaat binden aan een web-app

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