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

简介: 本文探讨Azure APIM自建网关信任自签名证书的第四种方案——通过`az aks update --custom-ca-trust-certificates`将CA证书注入AKS节点。经验证,该方法仅作用于节点系统层,对Pod内运行的APIM网关容器无效(因其使用.NET TLS路径,不读取系统CA)。最终确认:解决信任问题仍需回归前三种Pod级方案(如环境变量SSL_CERT_FILE、镜像预装或跳过验证)。

问题描述

在先前的四篇博文

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

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

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

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

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

我们分别介绍了使用OpenSSL生成自签名证书,然后解决APIM服务对自签名证书的信任问题。不论是APIM托管的网关,还是自建的网关都可以通过安装证书后使得请求受信任,通过配置API跳过证书验证环节。

在方案三中,开始从自建网关本身AKS POD”方面入手,通过配置 SSL_CERT_FILE 环境变量,来安装自签名证书 (根证书和中间证书)到POD中解决问题。

除了以上三种方案的情况下:在AKS集群的官方文档中,说可以直接更新集群,把自定义证书颁发机构(CA)向节点的信任存储添加多达 10 个 base64 编码的证书。

所以,基于这个文档,本文尝试了第四种方案:使用 az aks update  --custom-ca-trust-certificates 证书命令

 

方案步骤

准备步骤:准备好中间证书和根证书合并一起的 .crt 内容

导出方法:通过浏览器导出中间证书+根证书的 crt 文件,其内容是 Base64 编码

 

第一步:把准备好的证书传递到AKS集群

因aks集群已经创建好,所以使用 az aks update 指令

az aks update \
    --resource-group <resource-group-name> \
    --name <cluster-name> \
    --custom-ca-trust-certificates <path-to-certificate-file>

执行截图

第二步:验证自签名CA证书是否在节点中正常工作

1:使用 kubectl get nodes ,列出节点名称

2:进入节点debug模式:使用 kubectl debug node/<节点名> -it --image=mcr.azk8s.cn/aks/fundamental/base-ubuntu:v0.0.11, 如:kubectl debug node/aks-agentpool-20066971-vmss00000j -it --image=mcr.azk8s.cn/aks/fundamental/base-ubuntu:v0.0.11

3:使用 chroot /host 命令,把操作目录从当前容器环境 切换到 节点操作环境

4:对比访问两个不同自签名CA证书的URL

 

操作结果截图:

 

第三步:访问APIM的自建网关请求,自签名证书依旧不被信任。

 

为什么呢?把自签名的根证书,中间证书都安装到AKS集群中了,为何使用debug模式就可以信任这个自签名证书,而 APIM Self-hosted gateway pod却不可以呢?

疑问解答

Debug pod 之所以能信任,是因为它用的是通用 Ubuntu 基础镜像,走的是系统 CA bundle;

APIM Self‑hosted Gateway 用的是微软封装的网关容器 + .NET TLS 验证路径,完全不看 node 的 CA。

这一点在 AKS 官方文档中是明确写清楚的:“Certificates added to the AKS node trust store aren’t available to containers running in pods.”

AKS Node 安装 CA,只对 Node 生效,对 Pod 无效。 这一点,在文章开头的官方文档截图中,也特别提醒。只是,最开始没有正确理解这句话的意义!

 

所以,如果要解决APIM 中自签名CA证书的信任问题。目前验证下来,只有三种方式:

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

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

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

 

[完]

 

参考资料

在 Azure Kubernetes 服务(AKS)中使用自定义证书颁发机构(CA) :https://docs.azure.cn/zh-cn/aks/custom-certificate-authority




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

相关文章
|
19天前
|
Kubernetes 应用服务中间件 API
应对 Nginx Ingress 退役,是时候理清这些易混淆的概念了
本文希望提供一种更简单的方式,来理解这些容易混淆的技术概念:Nginx、Ingress、Ingress Controller、Ingress API、Nginx Ingress、Higress、Gateway API。
518 62
|
11天前
|
人工智能 运维 监控
进阶指南:BrowserUse + AgentRun Sandbox 最佳实践
本文将深入讲解 BrowserUse 框架集成、提供类 Manus Agent 的代码示例、Sandbox 高级生命周期管理、性能优化与生产部署策略。涵盖连接池设计、安全控制、可观测性建设及成本优化方案,助力构建高效、稳定、可扩展的 AI 浏览器自动化系统。
275 30
|
12天前
|
数据采集 监控 数据可视化
快速上手:LangChain + AgentRun 浏览器沙箱极简集成指南
AgentRun Browser Sandbox 是基于云原生函数计算的浏览器沙箱服务,为 AI Agent 提供安全、免运维的浏览器环境。通过 Serverless 架构与 CDP 协议支持,实现网页抓取、自动化操作等能力,并结合 VNC 实时可视化,助力大模型“上网”交互。
280 33
|
10天前
|
开发工具
【Azure 环境】使用Connect-MgGraph 命令登录中国区Azure遇见报错 AADSTS700016
使用Connect-MgGraph登录中国区Azure时,因应用ID未注册导致AADSTS700016错误。解决方法:在Azure Entra ID中注册新应用,配置正确重定向URI,并使用Client ID和Tenant ID登录即可成功。
74 13
|
10天前
|
数据采集 人工智能 IDE
告别碎片化日志:一套方案采集所有主流 AI 编程工具
本文介绍了一套基于MCP架构的轻量化、多AI工具代码采集方案,支持CLI、IDE等多类工具,实现用户无感、可扩展的数据采集,已对接Aone日志平台,助力AI代码采纳率分析与研发效能提升。
300 37
告别碎片化日志:一套方案采集所有主流 AI 编程工具
|
6天前
|
机器学习/深度学习 弹性计算 人工智能
2026阿里云服务器类产品活动解析:ECS、轻量应用服务器、GPU云服务器活动参考
阿里云服务器ECS在2026年推出多重优惠活动,涵盖长效低价、弹性计算、轻量应用及GPU云服务器等优惠。长效低价云服务器99元/199元起,续费同价。弹性计算爆款直降,38元可抢购轻量应用服务器。GPU云服务器A10卡目录价降25%,新人专享特惠,T4、V100、A10卡最低包月5折起,包年4折起。
146 6
|
7天前
|
定位技术 API 网络安全
2026年网站建设需要多少钱?
网站建设费用从千元到数十万元不等,主要取决于开发方式、功能复杂度及设计需求。模板站成本最低,定制开发适中,复杂系统费用最高。建议明确核心需求,选择匹配方案,并关注长期维护成本与隐性费用。
195 8
|
20天前
|
人工智能 安全 API
Nacos 安全护栏:MCP、Agent、配置全维防护,重塑 AI Registry 安全边界
Nacos安全新标杆:精细鉴权、无感灰度、全量审计!
424 63
|
12天前
|
人工智能 弹性计算 运维
探秘 AgentRun丨为什么应该把 LangChain 等框架部署到函数计算 AgentRun
阿里云函数计算 AgentRun,专为 AI Agent 打造的一站式 Serverless 基础设施。无缝集成 LangChain、AgentScope 等主流框架,零代码改造即可享受弹性伸缩、企业级沙箱、模型高可用与全链路可观测能力,助力 Agent 高效、安全、低成本地落地生产。
212 36