【问题标题】:Unable to import App Service Certificate after Subscription transfer订阅转移后无法导入应用服务证书
【发布时间】:2020-03-26 06:37:06
【问题描述】:

我最近将 Azure 订阅转移给了新目录中的新帐户所有者。这样做之后,我无法再将应用服务证书导入我的应用服务,因此无法创建任何 TSL/SSL 绑定

当我点击导入应用服务证书时,证书正确显示;当我点击证书时,它会正确显示 Validated the App Service Certificate;但是当我单击 OK 时,出现以下错误:

无法将应用服务证书添加到应用,请检查错误以获取更多详细信息。错误详细信息:该服务无权访问“MyKeyVault”Key Vault。请确保您已授予服务执行请求操作所需的权限。

此外,如果我打开我的 Certificate Key Vault,然后单击 KeysSecretsCertificates,我会收到以下消息:

出了点问题。请刷新并重试。

最后,在 Certificate Vault 的活动日志中,我可以看到我在迁移期间触发了 Update Key Vault 事件,所以我假设这可能是相关的,但是从活动日志中不清楚该事件是什么

请注意,我的帐户已分配给订阅的所有者角色。

我的问题:在这些条件下,如何将我的应用服务证书导入应用服务?或者,如何解决这些问题以进一步隔离此问题?

【问题讨论】:

    标签: azure ssl ssl-certificate azure-web-app-service azure-keyvault


    【解决方案1】:

    我使用的是 Azure 应用证书,并且在订阅移动后,证书的自动续订失败,尽管根据 Change a Key Vault tenant ID after a subscription move 已将 Key Vault 移动到新租户。

    进入我的应用服务并单击导入应用服务证书让我选择最新的证书并对其进行验证,但随后出现以下错误:

    无法将应用服务证书添加到应用,请检查错误以获取更多详细信息。错误详情:参数 KeyVaultId 和 KeyVaultSecretName 的值无效。

    就我而言,解决方案是删除应用服务证书的所有绑定和所有实例(即删除microsoft.web/certificates不是应用服务证书本身),然后重新绑定最新的证书。

    【讨论】:

      【解决方案2】:

      预计在将订阅转移到新目录后,您将无法导入应用服务证书 - 尽管您应该收到以下警告在您的密钥库中:

      当前选择的目录 (XYZ) 与此密钥保管库的目录不同。某些操作将被禁用。 Click this for more details.

      发生这种情况时,您通常会在 Key Vault 的 KeysSecrets 和/或 中收到以下错误消息>证书标签:

      此密钥保管库的访问策略中未启用“列表”操作。

      这些消息并不总是立即显示,可能是由于不同数据中心之间的依赖关系迁移,这可能是您收到的信息较少的错误的原因。我的假设是,您看到的通用消息会及时被这些特定消息替换,但它们都源于同一个潜在问题。

      将您的 Key Vault 与您的新目录相关联

      不过,最好确保您的 Key Vault 实际上在订阅转移后与新目录相关联。根据the instructions linked from the Azure error,您可以使用以下命令更改Azure PowerShell (Az) module 中的目录:

      Select-AzSubscription -SubscriptionId <your-subscriptionId>
      $vaultResourceId = (Get-AzKeyVault -VaultName myvault).ResourceId
      $vault = Get-AzResource –ResourceId $vaultResourceId -ExpandProperties
      $vault.Properties.TenantId = (Get-AzContext).Tenant.TenantId
      $vault.Properties.AccessPolicies = @()
      Set-AzResource -ResourceId $vaultResourceId -Properties $vault.Properties
      

      或者,请参阅 Stack Overflow 上的“Unable to access Key-Vault using Azure Portal”,它提供了类似的说明。

      注意: 安装Azure PowerShell (Az) module 很有用。但是,如果您不这样做,则始终可以使用 Azure Cloud Shell,它可以通过搜索栏右侧的外壳图标​​在 Azure 门户中访问。在这种情况下,您可能需要预配一个 Azure 存储帐户(如果您还没有)。

      验证分辨率

      上述步骤应该解决您的问题。但是为了安全起见,您应该检查两个相关的条件。

      应用服务证书

      首先,转到门户中的应用服务证书。您的应用服务证书和 Key Vault 之间应该有一个链接,它允许您的私钥存储在您的 Key Vault 中,并由具有适当访问策略的应用程序检索。 Azure 现在具有内置工具,可检测应用服务证书何时未正确链接到您的 Key Vault。要访问它,请单击证书配置,并确保在步骤 1:存储 旁边有一个复选标记。如果不是这种情况,门户网站会给你一个警告,你可以点击它来自动重新建立这个链接。

      Key Vault 访问策略

      其次,返回您的 Key Vault,然后单击 KeysSecretsCertificates。您应该不再在此处收到任何错误。但是,如果这样做,您可能需要重新配置或更新您的 Microsoft Azure App Service 访问策略,该策略通常在您首次创建 Azure App Service 证书时创建。

      注意:很多以前的帖子用于故障排除和解决通过访问策略访问应用服务的问题(例如,here on Stack Overflow,但也在 @ 987654328@),所以我不打算在这里详细介绍。但我想承认这种特殊的可能性,以防应用服务证书在订阅迁移后没有正确注册。

      完成这一切后,您现在应该可以在您的应用服务中使用导入应用服务证书了。

      【讨论】:

        猜你喜欢
        • 2019-06-09
        • 2014-01-19
        • 1970-01-01
        • 1970-01-01
        • 2021-06-08
        • 1970-01-01
        • 1970-01-01
        • 2019-10-31
        • 1970-01-01
        相关资源
        最近更新 更多