Freigeben über


Zertifikate und die App Service-Umgebung

Die App Service-Umgebung ist eine Bereitstellung von Azure App Service, die in Ihrem virtuellen Azure-Netzwerk ausgeführt wird. Sie kann mit einem über das Internet zugänglichen Anwendungsendpunkt oder einem Anwendungsendpunkt in Ihrem virtuellen Netzwerk bereitgestellt werden. Wenn Sie die App Service-Umgebung mit einem über das Internet zugänglichen Endpunkt bereitstellen, wird diese Bereitstellung als externe App Service-Umgebung bezeichnet. Wenn Sie die App Service-Umgebung mit einem Endpunkt in Ihrem virtuellen Netzwerk bereitstellen, wird diese Bereitstellung als ILB-App Service-Umgebung bezeichnet. Weitere Informationen zur ILB-App Service-Umgebung finden Sie im Dokument Erstellen einer App Service-Umgebung.

Anwendungszertifikate

Anwendungen, die in einer App Service-Umgebung gehostet werden, unterstützen die folgenden App-orientierten Zertifikatsfunktionen, die auch im mandantenfähigen App Service-Dienst verfügbar sind. Voraussetzungen und Anweisungen zum Hochladen und Verwalten dieser Zertifikate finden Sie unter Hinzufügen eines TLS-/SSL-Zertifikats in Azure App Service.

Nach dem Hinzufügen eines Zertifikats zu Ihrer App Service- oder Funktions-App können Sie damit einen benutzerdefinierten Domänennamen schützen oder es in Ihrem Anwendungscode verwenden.

Einschränkungen

Von App Service verwaltete Zertifikate werden für Apps, die in einer App Service-Umgebung gehostet werden, nicht unterstützt.

TLS-Einstellungen

Sie können die TLS-Einstellung auf App-Ebene konfigurieren.

Stammzertifikate für private Clientszenarien

Wenn Ihre App als Client fungiert, der eine Verbindung mit Diensten herstellt, die mit Zertifikaten der privaten Zertifizierungsstelle gesichert sind, müssen Sie Stammzertifikate hinzufügen, um eine Vertrauensstellung herzustellen. App Service Environment v3 bietet zwei Methoden zum Verwalten von Stammzertifikaten:

  • Stammzertifikat-API (empfohlen): Umgebungsweite Verwaltung für alle Apps
  • Privates Clientzertifikat: Konfiguration pro App mithilfe von Anwendungseinstellungen

Auswählen der richtigen Methode

Methode Geltungsbereich Verwenden Sie, wenn Einschränkungen
Stammzertifikat-API Alle Apps in der App-Dienstumgebung – Sie verwalten mehrere Apps, die dieselben Stammzertifikate benötigen
– Sie möchten zentrale Zertifikatverwaltung
– Sie stellen neue Umgebungen mit Infrastruktur als Code bereit
– Erfordert das Beenden und Starten vorhandener Apps zum Abrufen neuer Zertifikate
– Erfordert API/CLI/IaC-Tools (derzeit nicht im Azure-Portal verfügbar)
Privates Clientzertifikat Apps in einem einzelnen App Service-Plan – Sie benötigen Zertifikate nur für einige Wenige Apps
- Sie bevorzugen die portalbasierte Konfiguration
- Unterschiedliche Apps benötigen unterschiedliche Stammzertifikate
– Nur Windows-Code-Anwendungen
– Muss jeden App Service-Plan separat konfigurieren
– Zertifikate, die außerhalb des App-Codes nicht verfügbar sind (kann nicht für die Authentifizierung der Containerregistrierung oder die Front-End-TLS-Überprüfung verwendet werden)

Die allgemeine Empfehlung besteht darin, die Stammzertifikat-API für neue Bereitstellungen und beim Verwalten von Zertifikaten über mehrere Apps hinweg zu verwenden. Es bietet eine bessere Skalierbarkeit, Automatisierungsunterstützung und funktioniert sowohl für Windows- als auch für Linux-Apps.

Stammzertifikat-API

Mit der Stammzertifikat-API können Sie Ihrer App Service Environment v3 programmgesteuert Stammzertifikate hinzufügen und sie während des Starts für alle Apps verfügbar machen. Stammzertifikate sind öffentliche Zertifikate, die eine Stammzertifizierungsstelle (Root Certificate Authority, CA) identifizieren und für die Einrichtung von Vertrauen in sichere Kommunikation unerlässlich sind. Durch Hinzufügen von Stammzertifikaten zu Ihrer App Service-Umgebung werden alle in dieser Umgebung gehosteten Apps in ihrem Stammspeicher installiert, wodurch die sichere Kommunikation mit internen Diensten oder APIs sichergestellt wird, die zertifikate verwenden, die von privaten oder unternehmensinternen Zertifizierungsstellen ausgestellt wurden.

Diese Funktion ist für Windows- und Linux-basierte Apps in App Service Environment v3 verfügbar. Stammzertifikate, die über diese API hinzugefügt werden, werden automatisch in den Vertrauensspeicher von Apps beim Start eingefügt, sodass keine Konfigurationen pro App erforderlich sind und die Verwaltung des Zertifikatlebenszyklus vereinfacht wird.

Wichtige Überlegungen

  • Zertifikate können einer App Service Environment mithilfe der REST-API, azure CLI, ARM-Vorlagen, Bicep oder Terraform hinzugefügt werden.
  • Wenn Sie einer App Service-Umgebung mit vorhandenen oder laufenden Apps ein Zertifikat hinzufügen, müssen Sie jede App beenden und anschließend neu starten, damit der Zertifikatspeicher mit dem neuen Stammzertifikat aktualisiert wird. Es wird empfohlen, alle Zertifikate hinzuzufügen, bevor Sie Ihre Apps erstellen, um die Notwendigkeit zu vermeiden, Apps einzeln zu beenden und zu starten.
    • Stopp- und Startvorgänge unterscheiden sich vom Neustart Ihrer App. Sie müssen die dedizierten Stopp- und Startbefehle verwenden, die im Azure-Portal, der Azure CLI oder der REST-API verfügbar sind.
    • Das Starten und Anhalten von Apps führt zu vorübergehenden Unterbrechungen, während die Apps gestoppt sind.
    • Wenn Sie über mehrere Apps verfügen und diesen Prozess automatisieren möchten, können Sie die Azure CLI oder REST-API verwenden.
  • Während des Prozesses zum Hinzufügen von Zertifikaten müssen Sie den gesamten Zertifikatblob in der Anforderung bereitstellen. Sie können eine .cer Datei nicht direkt hochladen.

Hinzufügen eines Stammzertifikats

Verwenden Sie eine der folgenden Methoden, um Ihrer App Service-Umgebung ein Stammzertifikat hinzuzufügen:

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{aseName}/publicCertificates/{certificateName}?api-version=2024-04-01

Content-Type: application/json

{
  "location": "{location}",
  "properties": {
    "blob": "{raw certificate blob}",
    "isRoot": true
  }
}

Ersetzen Sie die folgenden Platzhalter:

  • {subscriptionId}: Ihre Azure-Abonnement-ID
  • {resourceGroupName}: Die Ressourcengruppe, die Ihre App Service-Umgebung enthält
  • {aseName}: Der Name Ihrer App-Dienstumgebung
  • {certificateName}: Ein Name für Ihre Zertifikatressource
  • {location}: Die Azure-Region, in der Ihre App Service-Umgebung bereitgestellt wird
  • {raw certificate blob}: Der rohe Zertifikat-Blob aus Ihrem Stammzertifikat

Entfernen eines Stammzertifikats

So entfernen Sie ein Stammzertifikat aus Ihrer App Service-Umgebung:

DELETE https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{aseName}/publicCertificates/{certificateName}?api-version=2024-04-01

Abrufen eines bestimmten Zertifikats

So rufen Sie ein bestimmtes Stammzertifikat aus Ihrer App Service-Umgebung ab:

GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{aseName}/publicCertificates/{certificateName}?api-version=2024-04-01

Abrufen aller öffentlichen Zertifikate

So rufen Sie alle öffentlichen Zertifikate aus Ihrer App Service-Umgebung ab:

GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{aseName}/publicCertificates?api-version=2024-04-01

Beenden und Starten von Apps

Nachdem Sie einer App-Dienstumgebung ein Stammzertifikat mit vorhandenen Apps hinzugefügt haben, müssen Sie jede App beenden und starten, um den Zertifikatspeicher zu aktualisieren.

  1. Navigieren Sie im Azure-Portal zu Ihrer App.
  2. Wählen Sie "Beenden " auf der Übersichtsseite aus.
  3. Warten Sie, bis die App vollständig beendet wird.
  4. Wählen Sie "Start" aus, um die App neu zu starten.

Privates Clientzertifikat (Konfiguration pro App)

Hinweis

Verwenden Sie für die meisten Szenarien die Stammzertifikat-API anstelle dieser Methode. Die Stammzertifikat-API bietet eine umgebungsweite Zertifikatverwaltung für Windows- und Linux-Apps, während diese Methode auf Windows-Code-Apps innerhalb eines einzelnen App Service-Plans beschränkt ist.

Wenn Sie Stammzertifikate nur für bestimmte Apps konfigurieren oder das Azure-Portal bevorzugen, können Sie die Methode des privaten Clientzertifikats verwenden. Bei diesem Ansatz werden Zertifikate in einzelne Apps hochgeladen und für Apps im selben App Service-Plan verfügbar gemacht.

Von Bedeutung

Private Clientzertifikate werden nur von benutzerdefiniertem Code in Windows-Code-Apps unterstützt. Private Clientzertifikate werden außerhalb der App nicht unterstützt. Dadurch wird die Verwendung in Szenarien wie dem Pullen des App-Containerimages aus einer Registrierung mithilfe eines privaten Zertifikats und der TLS-Überprüfung über die Front-End-Server mithilfe eines privaten Zertifikats eingeschränkt.

Führen Sie die folgenden Schritte aus, um das Zertifikat (Datei vom Typ .cer) in Ihre App in der App Service-Umgebung hochzuladen. Die Datei vom Typ .cer kann aus Ihrem Zertifikat exportiert werden. Zu Testzwecken gibt es am Ende ein PowerShell-Beispiel, um ein temporäres selbstsigniertes Zertifikat zu generieren:

  1. Wechseln Sie zu der App im Azure-Portal, die das Zertifikat benötigt.

  2. Wechseln Sie in der Anwendung zu Zertifikate. Wählen Sie Öffentliches Schlüsselzertifikat (CER) aus. Klicken Sie auf Zertifikat hinzufügen. Geben Sie einen Namen ein. Navigieren Sie zu Ihrer CER-Datei und wählen Sie sie aus. Wählen Sie „Hochladen“ aus.

  3. Kopieren Sie den Fingerabdruck.

  4. Wechseln Sie zu Konfiguration>Anwendungseinstellungen. Erstellen Sie die Anwendungseinstellung WEBSITE_LOAD_ROOT_CERTIFICATES mit dem Fingerabdruck als Wert. Wenn Sie über mehrere Zertifikate verfügen, können Sie diese in derselben Einstellung einfügen, getrennt durch Kommas und ohne Leerzeichen wie

    84EC242A4EC7957817B8E48913E50953552DAFA6,6A5C65DC9247F762FE17BF8D4906E04FE6B31819

Das Zertifikat ist von allen Apps im selben App Service-Plan wie die App verfügbar, die diese Einstellung konfiguriert hat, aber alle Apps, die vom privaten Zertifizierungsstellenzertifikat abhängen, sollten die Anwendungseinstellung konfiguriert haben, um Timing-Probleme zu vermeiden.

Wenn es für Anwendungen in einem anderen App Service-Plan verfügbar sein soll, müssen Sie den App-Einstellungsvorgang für die Anwendungen in diesem App Service-Plan wiederholen. Um zu überprüfen, ob das Zertifikat festgelegt ist, wechseln Sie zur Kudu-Konsole, und geben Sie den folgenden Befehl in die PowerShell-Debugkonsole ein:

dir Cert:\LocalMachine\Root

Sie können zum Testen ein selbstsigniertes Zertifikat erstellen und eine CER-Datei mit der folgenden PowerShell generieren:

$certificate = New-SelfSignedCertificate -CertStoreLocation "Cert:\LocalMachine\My" -DnsName "*.internal.contoso.com","*.scm.internal.contoso.com"

$certThumbprint = "Cert:\LocalMachine\My\" + $certificate.Thumbprint
$fileName = "exportedcert.cer"
Export-Certificate -Cert $certThumbprint -FilePath $fileName -Type CERT

Private Server-Zertifikat (TLS/SSL-Bindung)

Hinweis

In diesem Abschnitt werden Serverzertifikate für TLS/SSL-Bindungen behandelt, die sich von den zuvor erläuterten Stammzertifikaten unterscheiden. Serverzertifikate werden verwendet, um die benutzerdefinierte Domäne Ihrer App mit HTTPS zu sichern, während Stammzertifikate eine Vertrauensstellung für ausgehende Clientverbindungen herstellen.

Wenn Ihre Anwendung als Server in einem Client/Server-Modell fungiert, entweder hinter einem Reverseproxy oder direkt mit einem privaten Client und Sie ein privates ZS-Zertifikat verwenden, müssen Sie das Serverzertifikat (PFX-Datei) mit der vollständigen Zertifikatskette in Ihre Anwendung hochladen und das Zertifikat an die benutzerdefinierte Domäne binden. Da die Infrastruktur für Ihre App Service-Umgebung dediziert ist, wird die vollständige Zertifikatskette dem Vertrauensspeicher der Server hinzugefügt. Sie müssen das Zertifikat nur einmal hochladen, um es mit Anwendungen in der gleichen App Service-Umgebung zu verwenden.

Hinweis

Wenn Sie Ihr Zertifikat vor dem 1. Oktober 2023 hochgeladen haben, müssen Sie das Zertifikat für die vollständige Zertifikatkette erneut hochladen und erneut an die Server binden.

Befolgen Sie das Tutorial Sichere benutzerdefinierte Domäne mit TLS/SSL, um Ihr privates ZS-Stammzertifikat in die Anwendung in Ihrer App Service-Umgebung hochzuladen/zu binden.

Nächste Schritte