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
).
Vereisten
- Schaal uw App Service-app omhoog naar een van de ondersteunde prijscategorieën: Basic, Standard, Premium.
- Wijs een domeinnaam toe aan uw app of koop en configureer deze in Azure.
De binding toevoegen
Selecteer ><app-naam> in het linkermenu.
Selecteer aangepaste domeinen in de linkernavigatiebalk van uw app.
Selecteer Naast het aangepaste domein de optie Binding toevoegen.
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.
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.
Wanneer u een nieuw certificaat toevoegt, valideert u het nieuwe certificaat door Valideren te selecteren.
Selecteer Toevoegen.
Zodra de bewerking is voltooid, wordt de TLS/SSL-status van het aangepaste domein gewijzigd in Beveiligd.
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.net
wijst u in plaats daarvan een CNAME-toewijzing opnieuw toe zodat dezesni.<app-name>.azurewebsites.net
verwijst. (Voeg hetsni
voorvoegsel toe.)
HTTPS testen
Blader naar https://<your.custom.domain>
in verschillende browsers om te controleren of uw app wordt weergegeven.
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?
- Kan ik de geforceerde omleiding van HTTP naar HTTPS uitschakelen?
- Hoe kan ik de minimale TLS-versies voor de app wijzigen?
- Hoe kan ik TLS-beëindiging verwerken in App Service?
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:
- Upload het nieuwe certificaat.
- 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.
- 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