Freigeben über


Aktivieren von HTTPS für eine benutzerdefinierte Domäne in Azure App Service

In diesem Artikel wird erläutert, wie Sie die Sicherheit für die benutzerdefinierte Domäne in Ihrer Azure App Service-App oder Funktions-App bereitstellen, indem Sie eine Zertifikatbindung erstellen. Wenn Sie fertig sind, können Sie auf Ihre App Service-App am https:// Endpunkt für Ihren benutzerdefinierten DNS-Namen (Domain Name System) zugreifen. Beispiel ist https://www.contoso.com.

Screenshot einer Web-App mit einem benutzerdefinierten TLS/SSL-Zertifikat.

Voraussetzungen

Hinzufügen der Bindung

Im Azure-Portal:

  1. Wählen Sie im linken Bereich Den App-Dienstnamen><> aus.

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

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

    Screenshot, der zeigt, wie das Dialogfeld

  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. Wenn nicht, müssen Sie ein Zertifikat mithilfe einer der Auswahlen in "Source" hinzufügen:

    • Verwaltetes Zertifikat für den App-Dienst erstellen: Lassen Sie den App-Dienst 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-Dienstzertifikat importieren: Wählen Sie im App-Dienstzertifikat das App-Dienstzertifikat aus, das Sie für Ihre ausgewählte Domäne erworben haben.
    • Hochladen des Zertifikats (PFX): Folgen Sie dem Workflow beim Hochladen eines privaten Zertifikats , um ein PFX-Zertifikat (Personal Information Exchange File) von Ihrem lokalen Computer hochzuladen und das Zertifikatkennwort anzugeben.
    • Aus Schlüsseltresor importieren: Wählen Sie Schlüsseltresorzertifikat auswählen und dann das Zertifikat im Dialogfeld aus.
  5. Wählen Sie im TLS/SSL-Typ entweder SNI SSL oder IP-basiertes SSL aus:

    • SNI SSL: Sie können mehrere "Server Name Indication" (SNI) "Secure Sockets Layer" (SSL) Bindungen hinzufügen. Diese Option ermöglicht mehrere TRANSPORT Layer Security (TLS)/SSL-Zertifikate, um mehrere Domänen auf derselben IP-Adresse zu sichern. 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: Sie können nur eine IP-SSL-Bindung hinzufügen. 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-basiertes SSL wird nur auf der Standardebene oder höher unterstützt.
  6. Wenn Sie ein neues Zertifikat hinzufügen, wählen Sie "Überprüfen " aus, um das neue Zertifikat zu überprüfen.

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

    Ein gesicherter Zustand in benutzerdefinierten Domänen bedeutet, dass ein Zertifikat Sicherheit bietet. Der App-Dienst überprüft nicht, ob das Zertifikat selbstsigniert oder abgelaufen ist, was auch dazu führen kann, dass Browser einen Fehler oder eine Warnung anzeigen.

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.

Es gibt potenziell zwei Änderungen, die Sie vornehmen müssen:

  • 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 dann den A-Eintrag dieser neuen IP-Adresse neu 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, der ein Beispiel für das Browsen zu Ihrer benutzerdefinierten Domäne zeigt. Die contoso.com-URL ist hervorgehoben.

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

Wenn Ihre App Zertifikatüberprüfungsfehler meldet, verwenden Sie wahrscheinlich ein selbstsigniertes Zertifikat. Wenn dies nicht der Fall ist, haben Sie wahrscheinlich Zwischenzertifikate ausgelassen, wenn Sie Ihr Zertifikat in die PFX-Datei exportiert haben.

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. Dieses Verhalten ist besonders wichtig, wenn Sie ein Zertifikat erneuern, das sich bereits in einer IP-SSL-Bindung befindet. Führen Sie die folgenden Schritte aus, um eine Änderung der IP-Adresse Ihrer App zu vermeiden:

  1. Laden Sie das neue Zertifikat hoch.
  2. Binden Sie das neue Zertifikat an die gewünschte benutzerdefinierte Domäne, ohne das 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 TLS 1.2 standardmäßig zu. Branchenstandards wie PCI DSS empfehlen diese TLS-Stufe. 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-Befehlszeilenschnittstelle (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