【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




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

相关文章
|
5月前
|
机器学习/深度学习 移动开发 人工智能
大模型应用:庖丁解牛:QKV机制详解,大模型的注意力之眼.4
QKV机制是Transformer注意力的核心:Query(提问)、Key(标识)、Value(信息)三者通过点积计算相似度,Softmax归一化后加权融合Value,实现动态上下文感知。它能捕捉长程依赖,解决代词消解、一词多义等问题,支撑大模型强大语言理解能力。
1326 7
|
2月前
|
人工智能 监控 网络协议
【App Service】常规排查 App Service 启动 Application Insights 无数据的步骤 (.NET版本)
本文详解Application Insights在Azure App Service中无日志数据的三大原因及排查方法:1)网络连通性(验证到AI端点的443端口访问);2)w3wp.exe进程是否成功加载AI模块;3)DLL冲突(检查并移除重复的Microsoft.ApplicationInsights等组件)。
155 10
|
3月前
|
存储 网络协议 Linux
【Azure Container App】Debug Console的调试工具试验(二)-- lsof/ util-linux / netcat / wget
本文续讲Azure Container App Debug Console调试工具试验,详解lsof(端口/文件句柄排查)、util-linux(dmesg/mount/df等系统诊断)、netcat(网络连通性测试)及wget(HTTP端点验证)四大工具的实战用法与典型场景,助力高效排障。
260 8
|
5月前
|
人工智能 前端开发 测试技术
Violit: Streamlit杀手,无需全局刷新,构建AI快捷面板
Violit 是新一代 Python Web 框架,融合 Streamlit 的简洁语法与 React 的响应式性能。首创 O(1) 信号状态架构,零重运行、无需 `@cache`/`key`/回调,支持桌面原生应用与 30+ 主题,开箱即用、极速如光。
495 15
|
5月前
|
人工智能 运维 监控
智能体来了:AI Agent 时代技术从业者的焦虑拆解与能力重构指南
本文剖析AI Agent兴起引发的职业焦虑,指出其本质是技术范式从“工具调用”跃迁至“自主系统”的价值重构。文章拆解智能体四大工程能力,定义“AI Agent搭建师”新角色,提出三维转型路径,助力开发者从功能实现者升级为智能系统设计者。(239字)
386 5
|
5月前
|
人工智能 监控 调度
AI Agent 指挥官 vs AI 调度官:谁才是智能体系统的“大脑”?
随着AI迈向多智能体协同,系统分化出两大核心角色:**AI调度官**(专注任务分配与高效执行)与**AI Agent指挥官**(负责目标对齐、结构编排与系统治理)。二者分层协作,构建类操作系统的“智能中枢”,提升稳定性、可解释性与跨行业扩展能力,标志着AI从单点智能走向可持续组织化协同。
344 1
|
3月前
|
人工智能 安全 索引
【Azure AI Search】AI Search的索引器(Indexer)中使用解码函数base64Decode报错
Azure AI Search索引器使用base64Decode时失败,因默认启用URL安全解码(useHttpServerUtilityUrlTokenDecode=true),而源数据为标准Base64编码。解决方案:在mappingFunction中显式设置`&quot;useHttpServerUtilityUrlTokenDecode&quot;: false`,即可正确解码。
204 6
|
5月前
|
存储 缓存 数据建模
StarRocks + Paimon: 构建 Lakehouse Native 数据引擎
12月10日,Streaming Lakehouse Meetup Online EP.2重磅回归,聚焦StarRocks与Apache Paimon深度集成,探讨Lakehouse Native数据引擎的构建。活动涵盖架构统一、多源联邦分析、性能优化及可观测性提升,助力企业打造高效实时湖仓一体平台。
707 39
|
3月前
|
运维 监控 网络协议
【Azure Container App】Debug Console的调试工具试验(一)-- iputils / net-tools / procps
在使用 Azure Container Apps 时,很多问题只在生产环境出现: 应用无法访问外部服务、端口监听异常、CPU 飙高却找不到原因。 当你进入 Debug Console 后,真正能用的工具到底有哪些? 这些工具又该在什么场景下使用? 本系列文章将对 Debug Console 中预装的调试工具进行逐一实测, 帮你在没有 SSH、没有 VM、没有 kubectl 的情况下完成有效排障。
159 4
|
4月前
|
开发者
【Azure App Service】记录App Service Kudu站点的File Manger中无法查看文件列表的原因
本文描述Azure App Service Kudu控制台中文件目录UI显示为空(实际有文件),但PowerShell的`ls`命令可正常列出的问题。通过浏览器开发者工具定位到Unicode字符编码错误(\uDC6D),根源是文件名含非法代理对字符。解决方案:检查并重命名本地文件。
127 6