预计在将订阅转移到新目录后,您将无法导入应用服务证书 - 尽管您应该收到以下警告在您的密钥库中:
当前选择的目录 (XYZ) 与此密钥保管库的目录不同。某些操作将被禁用。 Click this for more details.
发生这种情况时,您通常会也在 Key Vault 的 Keys、Secrets 和/或 中收到以下错误消息>证书标签:
此密钥保管库的访问策略中未启用“列表”操作。
这些消息并不总是立即显示,可能是由于不同数据中心之间的依赖关系迁移,这可能是您收到的信息较少的错误的原因。我的假设是,您看到的通用消息会及时被这些特定消息替换,但它们都源于同一个潜在问题。
将您的 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,然后单击 Keys、Secrets 或 Certificates。您应该不再在此处收到任何错误。但是,如果这样做,您可能需要重新配置或更新您的 Microsoft Azure App Service 访问策略,该策略通常在您首次创建 Azure App Service 证书时创建。
注意:很多以前的帖子用于故障排除和解决通过访问策略访问应用服务的问题(例如,here on Stack Overflow,但也在 @ 987654328@),所以我不打算在这里详细介绍。但我想承认这种特殊的可能性,以防应用服务证书在订阅迁移后没有正确注册。
完成这一切后,您现在应该可以在您的应用服务中使用导入应用服务证书了。