Freigeben über


Schützen eines benutzerdefinierten DNS-Namens mit einer TLS-/SSL-Bindung in App Service

In diesem Artikel erfahren Sie, wie Sie durch die Erstellung einer Zertifikatsbindung Schutz für die benutzerdefinierte Domäne in Ihrer App Service-App oder Funktions-App bereitstellen. Wenn Sie fertig sind, können Sie am Endpunkt https:// für Ihren benutzerdefinierten DNS-Namen (z. B. https://www.contoso.com) auf Ihre App Service-App zugreifen.

Web-App mit benutzerdefiniertem TLS-/SSL-Zertifikat

Voraussetzungen

Hinzufügen der Bindung

Im Azure-Portal:

  1. Wählen Sie im linken Menü App Services><App-Name> aus.

  2. Wählen Sie im linken Navigationsbereich Ihrer App Benutzerdefinierte Domänen aus.

  3. Wählen Sie neben der benutzerdefinierten Domäne Bindung hinzufügen aus.

    Screenshot, der das Starten des Dialogfelds „TLS/SSL-Bindung hinzufügen“ veranschaulicht.

  4. Wenn Ihre App bereits über ein Zertifikat für die ausgewählte benutzerdefinierte Domäne verfügt, können Sie es in Zertifikat auswählen. Andernfalls müssen Sie ein Zertifikat mithilfe einer der Auswahloptionen in Quelle hinzufügen.

    • Von App Service verwaltetes Zertifikat erstellen: Lassen Sie App Service ein verwaltetes Zertifikat für Ihre ausgewählte Domäne erstellen. Diese Option ist am einfachsten. Weitere Informationen finden Sie unter Erstellen eines kostenlosen verwalteten Zertifikats.
    • App Service-Zertifikat importieren: Wählen Sie unter App Service-Zertifikat ein App Service-Zertifikat aus, das Sie für Ihre ausgewählte Domäne erworben haben.
    • Zertifikat hochladen (.pfx): Folgen Sie dem Workflow unter Hochladen eines privaten Zertifikats, um ein PFX-Zertifikat von Ihrem lokalen Computer hochzuladen und das Zertifikatkennwort anzugeben.
    • Aus Schlüsseltresor importieren: Wählen Sie Schlüsseltresorzertifikat auswählen aus, und wählen Sie das Zertifikat im Dialogfeld aus.
  5. Wählen Sie unter TLS/SSL-Typ entweder SNI SSL oder IP-basiertes SSL aus.

    • SNI SSL: Es können mehrere SNI SSL-Bindungen hinzugefügt werden. Bei dieser Option können mehrere zur selben IP-Adresse gehörige Domänen durch mehrere TLS-/SSL-Zertifikate geschützt werden. Die meisten modernen Browser (einschließlich Microsoft Edge, Chrome, Firefox und Opera) unterstützen SNI. (Weitere Informationen finden Sie unter Server Name Indication (Servernamensanzeige).)
    • IP-basiertes SSL: Es kann nur eine IP-SSL-Bindung hinzugefügt werden. Bei dieser Option kann eine dedizierte öffentliche IP-Adresse nur durch ein TLS-/SSL-Zertifikat geschützt werden. Führen Sie nach dem Konfigurieren der Bindung die Schritte unter Neuzuordnen von Datensätzen für IP-basiertes SSL aus.
      IP-SSL wird nur in der Ebene „Standard“ oder höher unterstützt.
  6. Wenn Sie ein neues Zertifikat hinzufügen, überprüfen Sie das neue Zertifikat, indem Sie Überprüfen auswählen.

  7. Wählen Sie Hinzufügen.

    Nach Abschluss des Vorgangs wird der TLS-/SSL-Status der benutzerdefinierten Domäne in Gesichert geändert.

    Screenshot der benutzerdefinierten Domäne, die durch eine Zertifikatbindung gesichert wird.

Hinweis

Der Zustand Gesichert unter Benutzerdefinierte Domänen bedeutet, dass Schutz durch ein Zertifikat gewährleistet wird. App Service überprüft jedoch nicht, ob das Zertifikat beispielsweise selbstsigniert oder abgelaufen ist, was ebenfalls dazu führen kann, dass ein Browser einen Fehler oder eine Warnung anzeigt.

Neuzuordnen von Datensätzen für IP-basiertes SSL

Dieser Schritt ist nur für IP-basiertes SSL erforderlich. Fahren Sie für eine SNI SSL-Bindung mit Testen von HTTPS fort.

Sie müssen eventuell zwei Änderungen vornehmen:

  • Standardmäßig verwendet Ihre App eine freigegebene öffentliche IP-Adresse. Wenn Sie ein Zertifikat mit IP-SSL binden, erstellt App Service eine neue, dedizierte IP-Adresse für Ihre App. Wenn Sie Ihrer App einen A-Eintrag zugeordnet haben, aktualisieren Sie Ihre Domänenregistrierung mit dieser neuen, dedizierten IP-Adresse.

    Die Seite Benutzerdefinierte Domäne Ihrer App wird mit der neuen, dedizierten IP-Adresse aktualisiert. Kopieren Sie diese IP-Adresse, und ordnen Sie dieser neuen IP-Adresse dann den A-Eintrag erneut zu.

  • Wenn eine SNI SSL-Bindung an <app-name>.azurewebsites.net besteht, ordnen Sie alle CNAME-Zuordnungen neu zu, um stattdessen auf sni.<app-name>.azurewebsites.net zu verweisen. (Fügen Sie das Präfix sni hinzu.)

Testen von HTTPS

Rufen Sie in verschiedenen Browsern https://<your.custom.domain> auf, um zu überprüfen, ob Ihre App angezeigt wird.

Screenshot: Beispiel zum Navigieren zur benutzerdefinierten Domäne. Die URL „contoso.com“ ist hervorgehoben.

Der Anwendungscode kann das Protokoll anhand des Headers x-appservice-proto untersuchen. Der Header hat den Wert http oder https.

Hinweis

Wenn Ihre App Zertifikatüberprüfungsfehler meldet, verwenden Sie wahrscheinlich ein selbstsigniertes Zertifikat.

Wenn dies nicht der Fall ist, haben Sie beim Exportieren des Zertifikats als PFX-Datei möglicherweise Zwischenzertifikate ausgelassen.

Häufig gestellte Fragen

Wie kann ich sicherstellen, dass sich die IP-Adresse der App nicht ändert, wenn ich Änderungen an der Zertifikatbindung vornehme?

Ihre IP-Adresse für eingehenden Datenverkehr kann sich ändern, wenn Sie eine Bindung löschen, auch wenn es sich um eine IP-SSL-Bindung handelt. Dies ist besonders wichtig, wenn Sie ein Zertifikat verlängern, das sich bereits in einer IP-SSL-Bindung befindet. Um eine Änderung der IP-Adresse in Ihrer App zu vermeiden, führen Sie diese Schritte in angegebener Reihenfolge aus:

  1. Laden Sie das neue Zertifikat hoch.
  2. Binden Sie das neue Zertifikat an die gewünschte benutzerdefinierte Domäne, ohne die alte zu löschen. Dadurch wird die Bindung ersetzt, anstatt die alte Bindung zu entfernen.
  3. Löschen Sie das alte Zertifikat.

Kann ich die erzwungene Umleitung von HTTP zu HTTPS deaktivieren?

Standardmäßig erzwingt App Service eine Umleitung von HTTP-Anforderungen an HTTPS. Informationen zum Deaktivieren dieses Verhaltens finden Sie unter Konfigurieren allgemeiner Einstellungen.

Wie kann ich die TLS-Mindestversionen für die App ändern?

Ihre App lässt standardmäßig TLS 1.2 zu. Diese TLS-Version wird von Branchenstandards wie PCI-DSS empfohlen. Informationen zum Erzwingen anderer TLS-Versionen finden Sie unter Konfigurieren allgemeiner Einstellungen.

Wie verarbeite ich den TLS-Abschluss in App Service?

In App Service erfolgt die TLS-Terminierung in den Modulen für den Netzwerklastenausgleich, sodass alle HTTPS-Anforderungen Ihre App unverschlüsselt erreichen. Wenn Ihre App-Logik überprüfen muss, ob Benutzeranforderungen verschlüsselt sind, überprüfen Sie dazu den X-Forwarded-Proto-Header.

In sprachspezifischen Konfigurationsleitfäden (etwa unter Konfigurieren einer Linux-Node.js-App für Azure App Service) wird die Erkennung einer HTTPS-Sitzung in Ihrem Anwendungscode gezeigt.

Automatisieren mit Skripts

Azure CLI

Binden eines benutzerdefinierten TLS-/SSL-Zertifikats an eine 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