首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

【Azure Cloud Service】使用RESTAPI更新Cloud Service(Extended Support) 中所配置的证书

编程知识
2024年10月12日 19:19

问题描述

当根据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

参考文档:https://learn.microsoft.com/en-us/rest/api/compute/cloud-services/get?view=rest-compute-2024-07-01&tabs=HTTP

 

注意,在中国区需要修改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

参考文档:https://learn.microsoft.com/en-us/rest/api/compute/cloud-services/create-or-update?view=rest-compute-2024-07-01&tabs=HTTP 

 使用第二步中同样的URL,把请求类型修改为PUT,然后把第二步修改的JSON放入Request Body。点击发送,查看请求的状态。

 

同时,可以回到Cloud Service (Extended Support) Azure门户页面,查看证书是否成功修改。

 

同时,更深入的验证是通过RDP到云服务的节点中,查看证书信息!

RDP --> 输入“cert” -->  选择“Manage Computer Certificates” -->  查看 Pernonal Certificates

 

 

【END】

 

From:https://www.cnblogs.com/lulight/p/18461421
本文地址: http://shuzixingkong.net/article/2504
0评论
提交 加载更多评论
其他文章 两小时学会使用dubbo(直接API、spring、注解、springboot)
最近上新的项目中需要用到dubbo,于是我决定温故知新,决定分享一下Dubbo在各种环境下的使用方式,本篇文章让你两小时就能学会使用dubbo 什么是Dubbo Dubbo是一个分布式、高性能、透明化的RPC服务框架,提供服务自动注册、自动发现等高效服务治理方案,可以和Spring框架无缝集成。Du
程序员开发利器:Your Commands网站上线
各种命令行工具是我们IT行业日常工作离不开的,但是对于命令行工具的使用有一个痛点:文档上每一个命令行参数写的清清楚楚,但是怎么组合起来用却搞不清楚。所以为了解决这个问题每个人都应该有一个记事本,记录下来自己常用的完整命令行,每次用的时候翻出来直接用就可以。但存放到本地的记事本是非常不方便的,各种云记
程序员开发利器:Your Commands网站上线 程序员开发利器:Your Commands网站上线
.NET 8 实现无实体库表 API 部署服务
前言 快速将创意变为现实!无需实体建库建表即可完成增删改查操作,支持15种条件查询、分页、列表及无限级树形列表等多种功能的API部署。 提供完善的接口文档、Auth授权、接口限流、客户端真实IP获取、先进服务器缓存组件及动态API等特性。让大家的工作效率倍增,远离加班和额外的知识付费。 项目介绍 无
.NET 8 实现无实体库表 API 部署服务 .NET 8 实现无实体库表 API 部署服务 .NET 8 实现无实体库表 API 部署服务
从零开始学机器学习——了解分类算法
分类算法 首先给大家介绍一个很好用的学习地址:https://cloudstudio.net/columns 分类算法是监督学习的一种重要方法,它与回归算法在许多方面有相似之处。监督学习的核心目标是利用已有的数据集进行预测,无论是数值型数据还是类别型数据。具体而言,分类算法主要用于将输入数据归类为不
从零开始学机器学习——了解分类算法 从零开始学机器学习——了解分类算法 从零开始学机器学习——了解分类算法
AOT漫谈专题(第三篇): 如何获取C#程序的CPU利用率
一:背景 1. 讲故事 上篇聊到了如何对AOT程序进行轻量级的APM监控,有朋友问我如何获取AOT程序的CPU利用率,本来我觉得这是一个挺简单的问题,但一研究不是这么一回事,这篇我们简单的聊一聊。 二:如何获取CPU利用率 1. 认识cpuUtilization字段 熟悉.NET底层的朋友应该知道,
AOT漫谈专题(第三篇): 如何获取C#程序的CPU利用率 AOT漫谈专题(第三篇): 如何获取C#程序的CPU利用率
C#/.NET/.NET Core技术前沿周刊 | 第 9 期(2024年10.07-10.13)
前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录、追踪C#/.NET/.NET Core领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿,助力技术成长与视野拓宽。 欢迎投稿、推荐或自荐优质文章、项目、学习资源等。每周
C#/.NET/.NET Core技术前沿周刊 | 第 9 期(2024年10.07-10.13) C#/.NET/.NET Core技术前沿周刊 | 第 9 期(2024年10.07-10.13) C#/.NET/.NET Core技术前沿周刊 | 第 9 期(2024年10.07-10.13)
OpenGL RHI优化
前言 随着Vulkan的普及,OpenGL已经在被慢慢淘汰,更轻的API调用可以节省不少性能,尤其是在移动平台上,可以减少CPU开销,进而减少功耗。看起来很完美,但是问题是目前移动平台Vulkan驱动存在很多兼容性问题,大家主流的做法都是通过白名单的方式去开Vulkan,所以目前我们还是要继续以Op
OpenGL RHI优化
SaaS架构:开放平台架构设计
大家好,我是汤师爷~ 今天聊聊开放平台架构设计。 为什么需要搭建开放平台 增强产品能力 开放平台能够让三方开发者和合作伙伴开发新的应用或服务,增加原有SaaS产品能力。这样就可以满足更多用户需求,从而提高用户的满意度和黏性。 促进创新 三方开发者能够在SaaS标准产品的基础上,创造新的解决方案,为平
SaaS架构:开放平台架构设计 SaaS架构:开放平台架构设计 SaaS架构:开放平台架构设计