Freigeben über


Häufige Schlüsseltresorfehler in Azure Application Gateway

Mit Application Gateway können Kunden TLS-Zertifikate sicher in Azure Key Vault speichern. Bei der Verwendung einer Key Vault-Ressource ist es wichtig, dass das Gateway immer Zugriff auf den verknüpften Schlüsseltresor hat. Wenn Ihre Application Gateway-Instanz das Zertifikat nicht abrufen kann, werden die zugeordneten HTTPS-Listener in den Zustand „Deaktiviert“ versetzt. Weitere Informationen

Dieser Artikel hilft Ihnen, die Details der Fehlercodes und die Schritte zum Beheben solcher Schlüsseltresor-Fehlkonfigurationen zu verstehen.

Tipp

Verwenden Sie einen geheimen Bezeichner, der keine Version angibt. Auf diese Weise rotiert Azure Application Gateway das Zertifikat automatisch, wenn eine neuere Version in Azure Key Vault verfügbar ist. Ein Beispiel für einen Geheimnis-URI ohne Version ist: https://myvault.vault.azure.net/secrets/mysecret/.

Azure Advisor-Fehlercodes

In den folgenden Abschnitten werden die verschiedenen Fehler behandelt, die auftreten können. Sie können überprüfen, ob bei Ihrem Gateway eines dieser Probleme auftritt, indem Sie Azure Advisor für Ihr Konto anzeigen und den vorliegenden Artikel zur Problembehandlung verwenden, um das Problem zu beheben. Es empfiehlt sich, Azure Advisor-Warnungen zu konfigurieren, um informiert zu bleiben, wenn ein Schlüsseltresorproblem für Ihr Gateway erkannt wird.

Hinweis

Azure Application Gateway generiert alle vier Stunden Protokolle für die Schlüsseltresordiagnose. Wenn die Diagnose weiterhin den Fehler anzeigt, nachdem Sie die Konfiguration korrigiert haben, müssen Sie möglicherweise warten, bis die Protokolle aktualisiert werden.

Fehlercode: UserAssignedIdentityDoesNotHaveGetPermissionOnKeyVault

Beschreibung: Die zugeordnete, benutzerseitig zugewiesene verwaltete Identität verfügt nicht über die erforderliche Berechtigung.

Lösung: Konfigurieren Sie die Zugriffsrichtlinien von Key Vault, um der vom Benutzer zugewiesenen verwalteten Identität diese Berechtigung für Geheimnisse zu erteilen. Sie können dies auf eine der folgenden Arten tun:

Tresorzugriffsrichtlinie

  1. Wechseln Sie zum verknüpften Schlüsseltresor im Azure-Portal.
  2. Öffnen Sie das Blatt Zugriffsrichtlinien.
  3. Wählen Sie für das Berechtigungsmodell die Option Tresorzugriffsrichtlinie aus.
  4. Wählen Sie unter Verwaltungsvorgänge für Geheimnisse die Berechtigung Get (Abrufen) aus.
  5. Wählen Sie Speichern aus.

 Screenshot that shows how to resolve the Get permission error.

Weitere Informationen finden Sie unter Zuweisen einer Key Vault-Zugriffsrichtlinie über das Azure-Portal.

Rollenbasierte Zugriffssteuerung (Azure)

  1. Wechseln Sie zum verknüpften Schlüsseltresor im Azure-Portal.
  2. Öffnen Sie das Blatt Zugriffsrichtlinien.
  3. Wählen Sie als BerechtigungsmodellRollenbasierte Zugriffssteuerung in Azure aus.
  4. Navigieren Sie nach diesem Vorgang zum Blatt Access Control (IAM), um Berechtigungen zu konfigurieren.
  5. Für das Hinzufügen von Rollenzuweisungen für Ihre verwaltete Identität wählen Sie Folgendes aus:
    a. Rolle: Key Vault-Geheimnisbenutzer
    b. Zugriff zuweisen zu: verwaltete Identität
    c. Mitglieder: Wählen Sie die vom Benutzer zugewiesene verwaltete Identität aus, die Sie Ihrem Anwendungsgateway zugeordnet haben.
  6. Wählen Sie Überprüfen und zuweisen aus.

Weitere Informationen finden Sie unter Rollenbasierte Zugriffssteuerung von Azure in Key Vault.

Hinweis

Derzeit ist bei Verwendung der Rollenbasierten Zugriffssteuerung in Azure keine Portalunterstützung zum Hinzufügen eines neuen Schlüsseltresor-basierten Zertifikats verfügbar. Sie können dies mithilfe einer ARM-Vorlage, der CLI oder PowerShell erreichen. Auf dieser Seite finden Sie eine Anleitung.

Fehlercode: SecretDisabled

Beschreibung: Das zugeordnete Zertifikat wurde in Key Vault deaktiviert.

Lösung: Aktivieren Sie die Zertifikatversion erneut, die derzeit für Application Gateway verwendet wird.

  1. Wechseln Sie zum verknüpften Schlüsseltresor im Azure-Portal.
  2. Öffnen Sie den Bereich Zertifikate.
  3. Wählen Sie den Namen des gewünschten Zertifikats und dann die deaktivierte Version aus.
  4. Verwenden Sie auf der Verwaltungsseite die Umschaltfläche, um diese Zertifikatsversion zu aktivieren.

Screenshot that shows how to re-enable a secret.

Fehlercode: SecretDeletedFromKeyVault

Beschreibung: Das zugeordnete Zertifikat wurde in Key Vault gelöscht.

Lösung: So stellen Sie ein gelöschtes Zertifikat wieder her:

  1. Wechseln Sie zum verknüpften Schlüsseltresor im Azure-Portal.
  2. Öffnen Sie den Bereich Zertifikate.
  3. Verwenden Sie die Registerkarte Verwaltete gelöschte Zertifikate, um ein gelöschtes Zertifikat wiederherzustellen.

Andererseits müssen Sie, wenn ein Zertifikatobjekt endgültig gelöscht wurde, ein neues Zertifikat erstellen und Application Gateway mit den neuen Zertifikatdetails aktualisieren. Verwenden Sie bei der Konfiguration über die Azure CLI oder Azure PowerShell den URI eines geheimen Bezeichners ohne Version. Durch diese Auswahl können Instanzen eine erneuerte Version des Zertifikats abrufen, sofern vorhanden.

Screenshot that shows how to recover a deleted certificate in Key Vault.

Fehlercode: UserAssignedManagedIdentityNotFound

Beschreibung: Die zugeordnete, benutzerseitig zugewiesene verwaltete Identität wurde gelöscht.

Lösung: Erstellen Sie eine neue verwaltete Identität und verwenden Sie sie mit dem Schlüsseltresor.

  1. Erstellen Sie erneut unter derselben Ressourcengruppe eine verwaltete Identität mit demselben Namen, der zuvor verwendet wurde. (TIPP: Weitere Informationen zur Benennung finden Sie unter „Ressourcenaktivitätsprotokolle“.)
  2. Wechseln Sie zur gewünschten Key Vault-Ressource, und legen Sie die Zugriffsrichtlinien so fest, dass der neuen verwalteten Identität die erforderlichen Berechtigungen erteilt werden. Sie können die unter UserAssignedIdentityDoesNotHaveGetPermissionOnKeyVault beschriebenen Schritte ausführen.

Fehlercode: KeyVaultHasRestrictedAccess

Beschreibung: Es gibt eine eingeschränkte Netzwerkeinstellung für Key Vault.

Lösung: Dieser Fehler tritt auf, wenn Sie die Key Vault-Firewall für eingeschränkten Zugriff aktivieren. Sie können Application Gateway auch in einem eingeschränkten Netzwerk von Key Vault konfigurieren, indem Sie die folgenden Schritte ausführen:

  1. Öffnen Sie in Key Vault den Bereich Netzwerk.
  2. Wählen Sie auf der Registerkarte Firewalls und virtuelle Netzwerke die Option Privater Endpunkt und ausgewählte Netzwerke aus.
  3. Fügen Sie dann über „Virtuelle Netzwerke“ das virtuelle Netzwerk und das Subnetz Ihrer Application Gateway-Instanz hinzu. Konfigurieren Sie während des Prozesses auch den Dienstendpunkt „Microsoft.KeyVault“, indem Sie das zugehörige Kontrollkästchen aktivieren.
  4. Wählen Sie abschließend Ja aus, damit vertrauenswürdige Dienste die Key Vault-Firewall umgehen können.

Screenshot that shows how to work around the restricted network error.

Fehlercode: KeyVaultSoftDeleted

Beschreibung: Der zugeordnete Schlüsseltresor befindet sich im Zustand „Vorläufiges Löschen“ (Soft-Delete).

Lösung: Suchen Sie im Azure-Portal nach Schlüsseltresor. Wählen Sie unter Dienste die Option Schlüsseltresore aus.

Screenshot that shows how to search for the Key Vault service.

Wählen Sie Verwaltete gelöschte Tresore aus. Von hier aus können Sie die gelöschte Key Vault-Ressource finden und wiederherstellen. Screenshot that shows how to recover a deleted key vault.

Fehlercode: CustomerKeyVaultSubscriptionDisabled

Beschreibung: Das Abonnement für Key Vault ist deaktiviert.

Lösung: Ihr Azure-Abonnement kann aus verschiedenen Gründen deaktiviert werden. Informationen zu den erforderlichen Maßnahmen für die Lösung finden Sie unter Reaktivieren eines deaktivierten Azure-Abonnements.

Application Gateway-Fehlercodes

Fehlercode: ApplicationGatewayCertificateDataOrKeyVaultSecretIdMustBeSpecified / ApplicationGatewaySslCertificateDataMustBeSpecified

Beschreibung: Möglicherweise tritt dieser Fehler auf, wenn Sie versuchen, ein Listenerzertifikat zu aktualisieren. Wenn dieser Fehler auftritt, wird die Änderung zum Aktualisieren des Zertifikats verworfen, und der Listener verarbeitet weiterhin den Datenverkehr mit der zuvor definierten Konfiguration.

Lösung: Um dieses Problem zu beheben, versuchen Sie es bitte erneut, das Zertifikat hochzuladen. Beispielsweise können die folgenden PowerShell-Befehle verwendet werden, um Zertifikate zu aktualisieren, die auf Application Gateway hochgeladen oder über Azure Key Vault verwiesen werden.

Aktualisieren Sie das Zertifikat, das direkt in Application Gateway hochgeladen wurde:

$appgw = Get-AzApplicationGateway -ResourceGroupName "<ResourceGroup>" -Name "<AppGatewayName>"

$password = ConvertTo-SecureString -String "<password>" -Force -AsPlainText

Set-AzApplicationGatewaySSLCertificate -Name "<oldcertname>" -ApplicationGateway $appgw -CertificateFile "<newcertPath>" -Password $password

Set-AzApplicationGateway -ApplicationGateway $appgw 

Aktualisieren des Zertifikats, auf das von Azure Key Vault verwiesen wird:

$appgw = Get-AzApplicationGateway -ResourceGroupName "<ResourceGroup>" -Name "<AppGatewayName>"

$secret = Get-AzKeyVaultSecret -VaultName "<KeyVaultName>" -Name "<CertificateName>" 
$secretId = $secret.Id.Replace($secret.Version, "") 
$cert = Set-AzApplicationGatewaySslCertificate -ApplicationGateway $AppGW -Name "<CertificateName>" -KeyVaultSecretId $secretId 

Set-AzApplicationGateway -ApplicationGateway $appgw 

Nächste Schritte

Diese Artikel zur Problembehandlung können hilfreich sein, wenn Sie weiterhin Application Gateway verwenden: