【Azure Cloud Service】使用RESTAPI更新Cloud Service(Extended Support) 中所配置的证书
问题描述
当根据Cloud Service (Extended Support) 文档更新证书 ( https://docs.azure.cn/zh-cn/cloud-services-extended-support/certificates-and-key-vault )时,如果遇见旧的证书(如中间证书,根证书)信息保存在Key Vault Secret中,而更新的时候,只能从Key Vault证书中匹配到服务器证书(叶子证书)时。 而中间证书,根证书会出现如下错误:
出现错误信息为:
在所选密钥保管库中找不到 .cscfg 中定义的一个或多个证书。请确保已将所有证书上传到所选密钥保管库,然后单击下面的刷新以重新验证。如果云服务正在添加基于密钥保管库机密的证书,则必须通过门户以外的方法添加基于机密的证书。
Go
to the selected key vault
Learn more about using
secret based certificates outside of the portal
而在提示的文档中,可以找到这句话
“但如果计划将证书用作机密,则无法验证这些证书的指纹,并且通过门户进行的任何涉及添加机密的更新操作都会失败。”
“ 建议客户使用 PowerShell 或 RestAPI 继续进行涉及机密的更新。”
本文将介绍如何使用REST API来更新证书!
操作步骤
第一步:上传证书到Azure Key Vault
根据证书文档步骤(https://docs.azure.cn/zh-cn/cloud-services-extended-support/certificates-and-key-vault#upload-a-certificate-to-key-vault) ,把PFX证书上传到Key Vault中,然后复制出证书的指纹信息和机密标识:
- Trumbprint, 证书指纹,具有唯一性,用于判断证书是否一样
- Secret Identifier,证书在Key Vault中的保存地址,保存的格式为base64加密后的JSON格式,如果是证书文件并且用于Cloud Service Extended Support,它的格式必须是如下的JSON格式:
{ "data": "Your base64 certificate", "dataType": "PFX", "password": "optional, 如有密码则填入密码" } 如: |
第二步:获取Cloud Service的信息,调用接口为GET API
注意,在中国区需要修改Host Endpoint为:management.chinacloudapi.cn
GET https:// management.chinacloudapi.cn /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/cloudServices/{cloudServiceName}?api-version=2022-04-04
需要携带Authorization Token,否则会获得如下错误:
{
"error": {
"code": "AuthenticationFailed",
"message": "Authentication failed. The 'Authorization' header is missing."
}
}
获取Token的方式可以通过浏览器访问Cloud Service(Extended Support)门户,然后通过开发者工具(F12)查看网络请求,从访问Cloud Service的请求头中获取Authorization内容。或者通过az cli获取token
az cloud set --name AzureChinaCloud az login az account get-access-token --scope "https://management.core.chinacloudapi.cn/.default" --query accessToken
当成功获取到Cloud Service的信息后,调整 JSON内容:删除Properties中,除了configuration 和 osProfile 外的全部内容。
整理之后JSON格式如下:
{
"name": "cloud service extended support name",
"id": "cloud service (extended) support resource id",
"type": "Microsoft.Compute/cloudServices",
"location": "chinanorth3",
"properties": {
"configuration": "{ServiceConfiguration}",
"osProfile": {
"secrets": [
{
"sourceVault": {
"id": "key vault resource id"
},
"vaultCertificates": [
{
"certificateUrl": "key vault Secret Identifier"
},
{
"certificateUrl": "key vault Secret Identifier"
},
{
"certificateUrl": "key vault Secret Identifier"
}
]
}
]
}
}
}
需要修改的地方有两处:
1)configuration内容中Certificates指纹,用第一步中的指纹值替换文件中需要修改的内容
2)osProfile.secrets中certificateUrl值,用第一步中的机密标识URL来替换旧的certificateUrl
准备好以上的内容后,既可以进行第三步,发送PUT请求把新证书更新到Cloud Service(Extended Support)
第三步:更新Cloud Service的信息,调用接口为PUT API
使用第二步中同样的URL,把请求类型修改为PUT,然后把第二步修改的JSON放入Request Body。点击发送,查看请求的状态。
同时,可以回到Cloud Service (Extended Support) Azure门户页面,查看证书是否成功修改。
同时,更深入的验证是通过RDP到云服务的节点中,查看证书信息!
RDP --> 输入“cert” --> 选择“Manage Computer Certificates” --> 查看 Pernonal Certificates
【END】
【Azure Cloud Service】使用RESTAPI更新Cloud Service(Extended Support) 中所配置的证书的更多相关文章
- Azure开发者任务之二:Cloud Service项目添加到ASP.Net Web中
假设我们正在把现有的Web应用程序或ASP.Net MVC Web应用程序迁移到云中.在这种情况下,我们需要把云服务添加到现有的Web应用程序或ASP.Net MVC Web应用程序中. 我们有一个W ...
- 【Azure 云服务】Azure Cloud Service (Extended Support) 云服务开启诊断日志插件 WAD Extension (Windows Azure Diagnostic) 无法正常工作的原因
问题描述 在Azure中国区上面创建一个云服务(外延支持)后,根据官方文档(在云服务(外延支持)中应用 Azure 诊断扩展: https://docs.azure.cn/zh-cn/cloud-se ...
- 微信小程序调用云函数出错 Error: errCode: -404011 cloud function execution error | errMsg: cloud.callFunction:fail cloud function service error code -501005, error message Environment not found;
错误异常: Error: errCode: -404011 cloud function execution error | errMsg: cloud.callFunction:fail cloud ...
- [login] 调用失败 Error: errCode: -404011 cloud function execution error | errMsg: cloud.callFunction:fail requestID , cloud function service error code -501000, error message Environment not found;
按照微信开放文档,创建完云开发项目,运行,点击获取openid,报如下错: [login] 调用失败 Error: errCode: -404011 cloud function execution ...
- 【Microsoft Azure学习之旅】消息服务Service Bus的学习笔记及Demo示例
今年项目组做的是Cloud产品,有幸接触到了云计算的知识,也了解并使用了当今流行的云计算平台Amazon AWS与Microsoft Azure.我们的产品最初只部署在AWS平台上,现在产品决定同时支 ...
- [AWS vs Azure] 云计算里AWS和Azure的探究(6) - Amazon Simple Storage Service 和 Microsoft Azure Blob Storage
这几天Nasuni公司出了一份报告,分析了各个云厂商的云存储的性能,包括Amazon S3,Azure Blob Storage, Google Drive, HP以及Rackspace.其中性能上A ...
- Kubernetes集群中Service的滚动更新
Kubernetes集群中Service的滚动更新 二月 9, 2017 0 条评论 在移动互联网时代,消费者的消费行为已经“全天候化”,为此,商家的业务系统也要保持7×24小时不间断地提供服务以满足 ...
- Android Service 通知Activity更新界面的方法研究
Android Service 通知Activity更新界面的方法研究 Android的最重要的组件式service和activity,那么在使用的过程中,我们最常遇到的问题是他们之间的通信问题. ...
- 【Azure 应用服务】探索在Azure上设置禁止任何人访问App Service的默认域名(Default URL)
问题描述 总所周知,Azure App Service服务会默认提供一个 ***.chinacloudsites.cn为后缀的域名,但是该域名由上海蓝云网络科技有限公司备案,仅用于向其客户提供 Azu ...
- spring cloud --- 使用 actuator 热更新【刷新】单机配置文件
1.前言 分布式微服务想要热更新配置文件,还需要 消息中间件 配合使用 ,一般使用 rabbitMQ 或 Kafka ,这里不解释 . 这篇随笔 只讲解 底层的 单机热更新配置文件 2.环境 spri ...
随机推荐
- 【IDEA】使用Maven骨架创建JavaWeb项目
IDEA版本:2020.1 骨架选项名称: org.apache.maven.archetypes:maven-archetype-webapp 本项目的Maven坐标设置: 设置优先从本地获取骨架: ...
- 基于Unity开发的强化学习环境(游戏环境):ml-agents —— Unity ML-Agents
介绍: https://medium.com/nerd-for-tech/an-introduction-to-machine-learning-with-unity-ml-agents-af7193 ...
- 如何在CMAKE中指定python路径——使用cmake为python编译扩展模块时指定python路径
答案: cmake -DPython3_EXECUTABLE=/path/to/bin/python3 ================================================ ...
- .NET 与 LayUI 实现高效敏捷开发框架
前言 WaterCloud 是一个集成了 LayUI 的高效敏捷开发框架,专为 .NET 开发者设计. 它不仅支持多种 .NET 版本(.NET 4.5..NET Core 3.1..NET 5..N ...
- 掌握 Nuxt 3 的页面元数据:使用 definePageMeta 进行自定义配置
title: 掌握 Nuxt 3 的页面元数据:使用 definePageMeta 进行自定义配置 date: 2024/8/11 updated: 2024/8/11 author: cmdrago ...
- 023.Ubuntu常见个性化配置
root登录设置 ubuntu默认关闭了root账户,可根据实际情况开启或关闭root登录. ubuntu@localhost:~$ sudo apt install openssh-server u ...
- springboot之banner.txt
在springboot启动过程中,我们经常可以看到控制台打印下面图文: 实际上这个打印图文,是可以自定义的,可以在springboot的resource中创建一个banner.txt文件,在启动时就会 ...
- 开关中断与cpsid/cpsie指令
在汇编代码中,CPSID CPSIE 用于快速的开关中断. I:IRQ中断; F:FIQ中断最常见的这两个命令的使用处是在关中断.开中断的实现中,我们经常用的local_irq_enabl ...
- SPI协议,MCP2515裸机驱动详解
SPI概述 Serial Peripheral interface 通用串行外围设备接口 是Motorola首先在其MC68HCXX系列处理器上定义的.SPI接口主要应用在 EEPROM,FLASH, ...
- C语言之父和Linux之父谁更伟大?
前言 在计算机软件领域,做出过重大贡献的神人很多,比如:<计算机程序设计艺术>(The Art of Computer Programming)一书的作者- Donald Knuth:Pa ...