Azure云服务迁移至扩展支持时.cer公钥证书迁移问题咨询
Azure经典云服务仅公钥.cer证书迁移至云服务扩展支持版本操作方案
云服务扩展支持版本要求所有.cscfg配置文件中声明的证书必须预先存放在关联的Key Vault中,仅含公钥的.cer证书不满足az keyvault certificate import命令的私钥校验要求,按以下步骤操作即可完成迁移,避免部署时报证书找不到的错误:
- 第一步先校验本地
.cer证书的指纹值,确认和.cscfg中声明的对应证书指纹完全一致,避免后续匹配失败。 - 上传
.cer公钥证书到Key Vault时,走机密存储通道而非证书导入通道,执行如下az cli命令:
不同环境生成Base64编码值的方式:az keyvault secret set --vault-name <你的Key Vault实例名称> --name <自定义证书存储名,建议直接使用证书指纹命名方便匹配> --value <.cer文件的无格式头Base64编码值> --content-type application/x-pkcs12- Windows环境:直接用
certutil -encode <本地.cer文件全路径> stdout | findstr /v /c:"-----"生成 - Linux/macOS环境:直接用
base64 -w 0 <本地.cer文件全路径>生成
- Windows环境:直接用
- 为云服务扩展支持配置的托管标识(系统分配/用户分配均可),授予目标Key Vault的机密读取权限,不要仅授予证书读取权限——公钥
.cer存储在Key Vault的机密节点下,仅开通证书读取权限会导致部署时拉取证书失败。 - 编写
New-AzCloudService的证书配置参数时,.cer证书的引用地址填写刚才上传生成的机密标识符即可,和.pfx证书的引用逻辑完全一致,不需要为公钥证书编写特殊配置。
避坑提示:不要为了适配
az keyvault certificate import命令给.cer证书强行生成空私钥转成PFX格式上传,会导致部署后服务读取公钥时出现签名校验失败、信任链断裂等异常。
正式执行部署命令前,可以先运行az keyvault secret show --vault-name <Key Vault实例名> --name <上传时设置的证书存储名>回查存储内容对应的证书指纹,确认和.cscfg中声明的值完全匹配后再执行部署,就不会触发证书找不到的报错。
内容的提问来源于stack exchange,提问作者Konstantin Surkov
相关产品推荐
相关产品推荐

