Azure Uygulaması lication Gateway'de yaygın anahtar kasası hataları

Application Gateway, müşterilerin TLS sertifikalarını Azure Key Vault'ta güvenli bir şekilde depolamasını sağlar. Anahtar kasası kaynağı kullanırken ağ geçidinin her zaman bağlı anahtar kasasına erişimi olması önemlidir. Application Gateway'iniz sertifikayı getiremezse, ilişkili HTTPS dinleyicileri devre dışı duruma getirilir. Daha fazla bilgi edinin.

Bu makale hata kodlarının ayrıntılarını ve bu tür anahtar kasası yanlış yapılandırmalarını çözme adımlarını anlamanıza yardımcı olur.

Bahşiş

Sürüm belirtmeyen bir gizli dizi tanımlayıcısı kullanın. Bu şekilde Azure Uygulaması Lication Gateway, Azure Key Vault'ta daha yeni bir sürüm varsa sertifikayı otomatik olarak döndürür. Sürümü olmayan gizli dizi URI'sine örnek olarak: https://myvault.vault.azure.net/secrets/mysecret/.

Azure Danışmanı hata kodları

Aşağıdaki bölümlerde karşılaşabileceğiniz çeşitli hatalar açıklanmaktadır. Ağ geçidinizde böyle bir sorun olup olmadığını doğrulamak için hesabınız için Azure Danışmanı'nı ziyaret edebilir ve sorunu çözmek için bu sorun giderme makalesini kullanabilirsiniz. Ağ geçidiniz için bir anahtar kasası sorunu algılandığında haberdar olmak için Azure Danışmanı uyarılarını yapılandırmanızı öneririz.

Dekont

Azure Uygulaması lication Gateway, dört saatte bir anahtar kasası tanılaması için günlükler oluşturur. Yapılandırmayı düzelttikkten sonra tanılama hata göstermeye devam ederse günlüklerin yenilenmesini beklemeniz gerekebilir.

Hata kodu: UserAssignedIdentityDoesNotHaveGetPermissionOnKeyVault

Açıklama: kullanıcı tarafından atanan ilişkili yönetilen kimlik gerekli izne sahip değil.

Çözüm: Gizli diziler üzerinde kullanıcı tarafından atanan yönetilen kimlik iznini vermek için anahtar kasanızın erişim ilkelerini yapılandırın. Bunu aşağıdaki yollardan herhangi biriyle yapabilirsiniz:

Kasa erişim ilkesi

  1. Azure portalında bağlı anahtar kasasına gidin.
  2. Erişim ilkeleri dikey penceresini açın.
  3. İzin modeli için Kasa erişim ilkesi'ni seçin.
  4. Gizli Dizi Yönetimi İşlemleri'nin altında İzin al'ı seçin.
  5. Kaydet'i seçin.

 Screenshot that shows how to resolve the Get permission error.

Daha fazla bilgi için bkz . Azure portalını kullanarak Key Vault erişim ilkesi atama.

Azure rol tabanlı erişim denetimi

  1. Azure portalında bağlı anahtar kasasına gidin.
  2. Erişim ilkeleri dikey penceresini açın.
  3. İzin modeli için Azure rol tabanlı erişim denetimi'ni seçin.
  4. İzinleri yapılandırmak için Erişim Denetimi (IAM) dikey penceresine gidin.
  5. Aşağıdakini seçerek yönetilen kimliğiniz için rol ataması ekleyin
    a. Rol: Key Vault Gizli Dizileri Kullanıcısı
    b. Erişim atama: Yönetilen kimlik
    c. Üyeler: Uygulama ağ geçidinizle ilişkilendirdiğiniz kullanıcı tarafından atanan yönetilen kimliği seçin.
  6. Gözden geçir + ata'yı seçin.

Daha fazla bilgi için bkz . Key Vault'ta Azure rol tabanlı erişim denetimi.

Dekont

Azure rol tabanlı erişim denetimi kullanılırken yeni anahtar kasası tabanlı sertifika eklemeye yönelik portal desteği şu anda kullanılamıyor. ARM şablonu, CLI veya PowerShell kullanarak bunu gerçekleştirebilirsiniz. Rehberlik için bu sayfayı ziyaret edin.

Hata kodu: SecretDisabled

Açıklama: İlişkili sertifika Key Vault'ta devre dışı bırakıldı.

Çözüm: Application Gateway için kullanılmakta olan sertifika sürümünü yeniden etkinleştirin.

  1. Azure portalında bağlı anahtar kasasına gidin.
  2. Sertifikalar bölmesini açın.
  3. Gerekli sertifika adını ve ardından devre dışı bırakılmış sürümü seçin.
  4. Yönetim sayfasında, bu sertifika sürümünü etkinleştirmek için iki durumlu düğmeyi kullanın.

Screenshot that shows how to re-enable a secret.

Hata kodu: SecretDeletedFromKeyVault

Açıklama: İlişkili sertifika Key Vault'tan silindi.

Çözüm: Silinen bir sertifikayı kurtarmak için:

  1. Azure portalında bağlı anahtar kasasına gidin.
  2. Sertifikalar bölmesini açın.
  3. Silinen sertifikayı kurtarmak için Yönetilen silinen sertifikalar sekmesini kullanın.

Öte yandan, bir sertifika nesnesi kalıcı olarak silinirse yeni bir sertifika oluşturmanız ve Application Gateway'i yeni sertifika ayrıntılarıyla güncelleştirmeniz gerekir. Azure CLI veya Azure PowerShell aracılığıyla yapılandırırken, sürümü olmayan bir gizli dizi tanımlayıcı URI'sini kullanın. Bu seçenek, örneklerin varsa sertifikanın yenilenen bir sürümünü almasına olanak tanır.

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

Hata kodu: UserAssignedManagedIdentityNotFound

Açıklama: Kullanıcı tarafından atanan ilişkili yönetilen kimlik silindi.

Çözüm: Yeni bir yönetilen kimlik oluşturun ve anahtar kasasıyla kullanın.

  1. Daha önce kullanılan adla ve aynı kaynak grubu altında yönetilen kimliği yeniden oluşturun. (İpucu: Adlandırma ayrıntıları için kaynak Etkinlik Günlükleri'ne bakın).
  2. İstenen anahtar kasası kaynağına gidin ve bu yeni yönetilen kimliğe gerekli izni vermek için erişim ilkelerini ayarlayın. UserAssignedIdentityDoesNotHaveGetPermissionOnKeyVault altında belirtilen adımların aynısını izleyebilirsiniz.

Hata kodu: KeyVaultHasRestrictedAccess

Açıklama: Key Vault için kısıtlanmış bir ağ ayarı vardır.

Çözüm: Kısıtlı erişim için Key Vault güvenlik duvarını etkinleştirdiğinizde bu hatayla karşılaşırsınız. Aşağıdaki adımları izleyerek Application Gateway'i kısıtlı bir Key Vault ağında yapılandırmaya devam edebilirsiniz:

  1. Key Vault'ta Ağ bölmesini açın.
  2. Güvenlik duvarları ve sanal ağlar sekmesini ve özel uç nokta ile seçili ağlar'ı seçin.
  3. Ardından Sanal Ağ kullanarak Application Gateway'inizin sanal ağını ve alt ağını ekleyin. İşlem sırasında, onay kutusunu seçerek 'Microsoft.KeyVault' hizmet uç noktasını da yapılandırın.
  4. Son olarak, Güvenilen Hizmetler'in Key Vault'un güvenlik duvarını atlamasına izin vermek için Evet'i seçin.

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

Hata kodu: KeyVaultSoftDeleted

Açıklama: İlişkili anahtar kasası geçici silme durumunda.

Çözüm: Azure portalında anahtar kasası için arama yapın. Hizmetler'in altında Anahtar kasaları'na tıklayın.

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

Yönetilen silinen kasalar'ı seçin. Buradan silinen Key Vault kaynağını bulabilir ve kurtarabilirsiniz. Screenshot that shows how to recover a deleted key vault.

Hata kodu: CustomerKeyVaultSubscriptionDisabled

Açıklama: Key Vault aboneliği devre dışı bırakıldı.

Çözüm: Azure aboneliğiniz çeşitli nedenlerle devre dışı bırakılabilir. Çözmek için gerekli eylemi yapmak için bkz . Devre dışı bırakılmış bir Azure aboneliğini yeniden etkinleştirme.

Application Gateway Hata Kodları

Hata kodu: ApplicationGatewayCertificateDataOrKeyVaultSecretIdMustBeSpecified / ApplicationGatewaySslCertificateDataMustBeSpecified

Açıklama: Dinleyici sertifikasını güncelleştirmeye çalışırken bu hatayla karşılaşabilirsiniz. Bu hata oluştuğunda, sertifikayı güncelleştirme değişikliği atılır ve dinleyici daha önce tanımlanmış yapılandırmayla trafiği işlemeye devam eder.

Çözüm: Bu sorunu çözmek için lütfen sertifikayı karşıya yüklemeyi yeniden deneyin. Örneğin, Application Gateway'e yüklenen veya Azure Key Vault aracılığıyla başvuruda bulunılan sertifikaları güncelleştirmek için aşağıdaki PowerShell komutları kullanılabilir.

Doğrudan Application Gateway'e yüklenen sertifikayı güncelleştirin:

$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 

Azure Key Vault'tan başvuruda bulunduğu sertifikayı güncelleştirin:

$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 

Sonraki adımlar

Application Gateway kullanmaya devam ettikçe bu sorun giderme makaleleri yararlı olabilir: