订阅转移后无法导入应用服务证书

时间:2020-03-26 06:37:06

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

我最近将Azure订阅转移到了新目录中的新帐户所有者。之后,我将无法再将App Service证书导入到我的App Service中,因此无法创建任何 TSL / SSL绑定

当我单击导入应用服务证书时,该证书会正确显示;当我单击证书时,它会正确显示已验证应用服务证书;但是当我单击 OK 时,出现以下错误:

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

此外,如果我打开“证书密钥库”,然后单击“ 密钥”,“ 秘密”或“ 证书”,则会收到以下消息:

出了点问题。请刷新,然后重试。

最后,在证书保管库的活动日志中,我可以看到在迁移时触发了 Update Key Vault 事件,因此我认为这可能是相关的,但是从活动日志什么尚不清楚该事件是什么。

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

我的问题:在这些条件下,如何将我的App Service证书导入到App Service中?另外,如何解决这些问题以进一步隔离该问题?

2 个答案:

答案 0 :(得分:1)

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

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

发生这种情况时,通常会在Key Vault的 Keys 秘密和/或中获得以下错误消息>证书标签:

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

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

将密钥保管库与新目录相关联

但是,无论如何,确保在订阅转移之后,实际上将您的Key Vault与新目录相关联是一个好主意。根据{{​​3}},您可以使用以下命令在the instructions linked from the Azure error中更改目录:

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

或者,请参见堆栈溢出中的“ Azure PowerShell (Az) module”,其中提供了类似的说明。

注意:安装Unable to access Key-Vault using Azure Portal很有用。但是,如果不这样做,则始终可以使用Azure PowerShell (Az) module,可以在Azure门户中通过搜索栏右侧的外壳图标​​来访问它。在这种情况下,如果您尚未配置Azure存储帐户,则可能需要。

验证分辨率

上述步骤应该解决您的问题。但是,有两个相关条件需要检查以确保安全。

应用服务证书

首先,在门户中转到您的应用服务证书。您的应用服务证书和密钥保管库之间应该有一个链接,该链接允许您将私钥存储在密钥保管库中,并由具有适当访问策略的应用程序检索。 Azure现在具有内置工具来检测何时未正确将App Service证书正确链接到您的Key Vault。要访问此证书,请单击“ <证书>证书配置” ,并确保在“ 步骤1:存储”旁边有一个对勾。如果不是这种情况,门户网站将向您发出警告,您可以单击该警告以自动重新建立此链接。

关键保管库访问策略

第二,返回到您的密钥保险库,然后单击密钥秘密证书。您在这里不再会收到任何错误。但是,如果这样做,可能 需要重新配置或更新您的 Microsoft Azure应用服务访问策略,该策略通常是在首次创建Azure应用服务证书时创建的。 / p>

注意:堆栈溢出帖子中有很多,它们用于通过访问策略(Azure Cloud Shell)对应用服务的访问进行故障排除和解决,因此我我不会在这里详细介绍。但是我想承认这种特殊可能性,以防万一迁移后应用服务证书未正确注册。

完成所有操作后,您现在应该可以在应用服务中使用导入应用服务证书

答案 1 :(得分:0)

我正在使用Azure App证书,并且在进行预订移动之后,尽管根据Change a key vault tenant ID after a subscription move将密钥库移到了新的租户,但是证书的自动更新失败。

进入我的应用程序服务,然后单击“导入应用程序服务证书”,让我选择最新的证书,确认它正确,但随后出现以下错误:

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

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