【Azure APIM】APIM的自建网关如何解决自签名证书的受信任问题呢?(方案一)

简介: 本文详解在Azure APIM自建网关部署于AKS时,如何解决HTTPS自签名证书不被信任的问题。通过上传根/中间证书、调用REST API标记为可信,实现POD内证书信任,确保后端服务安全通信。

问题描述

在先前的两篇博文

1:【Azure APIM】如何解决后端API服务配置自签名证书时APIM请求报错500:Error occured while calling backend service

2:【Azure 环境】在Windows环境中使用OpenSSL生成自签名证书链步骤分享

我们介绍了使用OpenSSL生成自签名证书,然后解决APIM服务对自签名证书的信任问题。

现在,APIM可以自建网关(Self-host gateway), 把APIM的功能部署在自己管理的AKS环境中,使用Self-host gateway功能。

新的调用流程图如下:

现在,也会面临一个同样的问题,如何在AKS中的POD中,让请求HTTPS的自签名证书得到信任呢?

 

如果,只是根据文档把自建网关部署完成,访问AKS服务对外提供的IP地址,就会遇见错误:

errors: [{"elapsed":360,"source":"request-forwarder","path":"forward-request\forward-request","reason":"BackendConnectionFailure","message":"The remote certificate was rejected by the provided RemoteCertificateValidationCallback.","section":"backend"}]

## 使用kubectl logs <pod name> 查看日志:

 

问题解答

在官方文档中,有提供方案。但是,它的描述实在是太简单了,理解难度高,根据文档的可操作程度底。

为自托管网关创建自定义 CA

(Link: https://docs.azure.cn/zh-cn/api-management/api-management-howto-ca-certificates)

如果使用 自承载网关,则不支持通过上传到 API 管理服务的 CA 根证书验证服务器和客户端证书。 若要建立信任,请配置特定的客户端证书,使其被网关作为一个自定义的证书颁发机构所信任。

使用 网关证书颁发机构 REST API 为自承载网关创建和管理自定义 CA。 创建自定义 CA 的步骤:

  1. 将证书 .pfx 文件添加到 API 管理实例。
  2. 使用 网关证书颁发机构 - 创建或更新 REST API 将证书与自管理网关相关联。

两个步骤1)上传证书,2)标记证书为可信任。 但是,实际操作起来,面对的疑问是:

  • 证书书 .pfx 文件时什么呢?
  • 它是服务器证书?
  • 是根证书?
  • 还是中间证书?
  • REST API的URL中的certificateId如何得到呢?
  • Request body内容是什么呢? isTrusted 值设置为False表示证书被受信任,还是表示这个证书是一个不被信任的证书呢?

在经过反复实验后,终于成功的解决自签名证书受信任的问题。

 

分享图示步骤

第一步:把根证书,中间证书上传到APIM的Certificate目录中(注意:不是CA Certificate目录)

第二步:调用 Gateway Certificate Authority - Get 方法获取第一步上传证书的certificateId

在中国区的API Endpoint为:GET  https://management.chinacloudapi.cn/subscriptions/<00000000-0000-0000-0000-000000000000>/resourceGroups/<rg1>/providers/Microsoft.ApiManagement/service/<apimService1>/gateways/<gw1>/certificateAuthorities?api-version=2024-05-01

请求的认证Token可以登录到APIM门户上,打开浏览器开发模式(F12), 进入Network项,获取当前APIM页面发送的请求,从其中一个请求头中获取Authorization值即可。

第三步:调用 Gateway Certificate Authority - Update 方法分别设置根证书+中间证书被信任isTrusted:True

调用PUT请求:PUT https://management.chinacloudapi.cn/subscriptions/<00000000-0000-0000-0000-000000000000>/resourceGroups/<rg1>/providers/Microsoft.ApiManagement/service/<apimService1>/gateways/<gw1>/certificateAuthorities/<certificateId>?api-version=2024-05-01

请求认证同上,<00000000-0000-0000-0000-000000000000>, <rg1>, <apimService1>,<gw1> 均需要替换为正确值,<certificateId> 值为第二步返回的根证书ID和中间证书ID

请求Body:

{

  "properties": {

    "isTrusted": true

  }

}

PUT请求截图:

(对根证书,中间证书均需要完成同样设置)

 

以上步骤完成后,再一次访问自建网关URL。HTTPS请求成功,自签名证书被信任。

 

【完】

 

 

 

参考资料

为自托管网关创建自定义 CA : https://docs.azure.cn/zh-cn/api-management/api-management-howto-ca-certificates#create-custom-ca-for-a-self-hosted-gateway

 



 

当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!

相关文章
|
6天前
|
人工智能 JavaScript Linux
【Claude Code 全攻略】终端AI编程助手从入门到进阶(2026最新版)
Claude Code是Anthropic推出的终端原生AI编程助手,支持40+语言、200k超长上下文,无需切换IDE即可实现代码生成、调试、项目导航与自动化任务。本文详解其安装配置、四大核心功能及进阶技巧,助你全面提升开发效率,搭配GitHub Copilot使用更佳。
|
8天前
|
存储 人工智能 自然语言处理
OpenSpec技术规范+实例应用
OpenSpec 是面向 AI 智能体的轻量级规范驱动开发框架,通过“提案-审查-实施-归档”工作流,解决 AI 编程中的需求偏移与不可预测性问题。它以机器可读的规范为“单一真相源”,将模糊提示转化为可落地的工程实践,助力开发者高效构建稳定、可审计的生产级系统,实现从“凭感觉聊天”到“按规范开发”的跃迁。
1078 13
|
4天前
|
云安全 安全
免费+限量+领云小宝周边!「阿里云2026云上安全健康体检」火热进行中!
诚邀您进行年度自检,发现潜在风险,守护云上业务连续稳健运行
1170 2
|
6天前
|
人工智能 JavaScript 前端开发
【2026最新最全】一篇文章带你学会Cursor编程工具
本文介绍了Cursor的下载安装、账号注册、汉化设置、核心模式(Agent、Plan、Debug、Ask)及高阶功能,如@引用、@Doc文档库、@Browser自动化和Rules规则配置,助力开发者高效使用AI编程工具。
946 4
|
7天前
|
消息中间件 人工智能 Kubernetes
阿里云云原生应用平台岗位急招,加入我们,打造 AI 最强基础设施
云原生应用平台作为中国最大云计算公司的基石,现全面转向 AI,打造 AI 时代最强基础设施。寻找热爱技术、具备工程极致追求的架构师、极客与算法专家,共同重构计算、定义未来。杭州、北京、深圳、上海热招中,让我们一起在云端,重构 AI 的未来。
|
10天前
|
IDE 开发工具 C语言
【2026最新】VS2026下载安装使用保姆级教程(附安装包+图文步骤)
Visual Studio 2026是微软推出的最新Windows专属IDE,启动更快、内存占用更低,支持C++、Python等开发。推荐免费的Community版,安装简便,适合初学者与个人开发者使用。
1085 11
|
12天前
|
存储 JavaScript 前端开发
JavaScript基础
本节讲解JavaScript基础核心知识:涵盖值类型与引用类型区别、typeof检测类型及局限性、===与==差异及应用场景、内置函数与对象、原型链五规则、属性查找机制、instanceof原理,以及this指向和箭头函数中this的绑定时机。重点突出类型判断、原型继承与this机制,助力深入理解JS面向对象机制。(238字)
|
10天前
|
人工智能 Shell 开发工具
Claude Code 2.1.2超详细更新说明,小白也能10分钟上手
Claude Code 2.1.x重磅更新:Shift+Enter换行、Esc+Esc撤销、Ctrl+B后台运行,Skills技能系统全面升级,支持多语言、通配符权限与动态MCP检测,性能提升50%,迭代速度惊人,开发者效率暴涨!
Claude Code 2.1.2超详细更新说明,小白也能10分钟上手