由于我的电脑曾经管理过两个Azure订阅,这两天在上传VHD文件到Azure时出现了“找不到存储账号”及“证书不匹配”的问题。

场景还原

第一天使用Azure账号A上传VHD,没有出现问题。第二天使用Azure账号B上传VHD是,出现了如下提示”The storage account was not found”

clip_p_w_picpath001

再次核对Azure管理后台,确定存储账号“uploadtest”是存在的。先来看看存储账号,结果提示“No certificate was found in the certificate store with thumbprint”

clip_p_w_picpath001[9]

问题分析

a. 近期我使用Azure Powershell管理过两个Azure账号,可能是Azure账号识别不正确;

b. Powershell执行命令时不需要输入Azure账号信息,那么本地计算机肯定保存了Azure账号的相关信息;

c. 在所有操作过程中,只是从Azure下载过证书并安装到本地计算机上了,而上图中也有提示证书的问题。

解决过程

1. 查看证书

在操作最初,我用导入过从Azure下载的证书。此证书存放在当前用户的个人目录下

Azure Powershell管理多订阅及证书_第1张图片

2. 查看本机关联的Azure订阅

命令

从下图中可以看出有两个不同的Azure订阅“1RMB Trail Offer”和“免费试用”,而“1RMB Trail Offer”的DefaultAccount值与上面提示“No certificate was found in the certificate store with thumbprint”的证书指纹完全吻合。“1RMB Trail Offer”的另外两个属性IsDefault和IsCurrent值均为True,与“免费试用”相反,即默认订阅和当前活动订阅均为“1RMB Trail Offer”。

Azure Powershell管理多订阅及证书_第2张图片

那么,问题来了,我现在需要管理订阅“免费试用”,该怎么办?

3. 选择Azure订阅

命令

执行完成后可以看到,订阅“1RMB Trail Offer”和“免费试用”的IsCurrent值变为对调了,即当前活动订阅变为“免费试用”

Azure Powershell管理多订阅及证书_第3张图片

4. 再次查看存储账号

再次查看存储账号,发现属性正常了,正式我想要管理的

Azure Powershell管理多订阅及证书_第4张图片

5. 上传VHD文件

终于可以正常上传了,可以看到进度

Azure Powershell管理多订阅及证书_第5张图片

插曲-证书指纹更新

针对提示“No certificate was found in the certificate store with thumbprint”,还有另外一个插曲。

我在管理订阅“免费试用”对应的账号时,生成过多张证书,从上图中3个证书指纹就可发现。而我电脑仅保留了最后一张证书(指纹EA1AED开头的),但是Azure的订阅关联的默认证书是第一张(证书指纹263B87开头的),见下图

Azure Powershell管理多订阅及证书_第6张图片

此时我在进行VHD上传时,同样出现了证书错误,见下图

Azure Powershell管理多订阅及证书_第7张图片

处理办法,更新订阅关联的默认证书指纹

命令

<$mycert = Get-Item Cert:\CurrentUser\My\证书指纹>

完成后结果如下

Azure Powershell管理多订阅及证书_第8张图片

本文结束