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

简介: 本文介绍如何在Azure APIM中配置忽略自签名证书的验证,通过禁用证书链校验(SkipCertificateChainValidation),实现APIM与后端HTTPS服务的安全通信,适用于托管网关与自建网关场景,提升部署灵活性,但需注意潜在安全风险。

问题描述

在先前的三篇博文

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

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

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

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

正如常规的证书验证中,客户端是可以跳过证书验证这一环节的:如:浏览器的继续访问不安全的网站提示窗口, curl -k 命令等

那么,在APIM的配置上,是否可以直接设置忽略证书验证呢?

 

问题解答

可以的,APIM可以设置对后端的HTTPS自签名证书的验证过程为禁用。使得APIM网关服务能和后端服务进行HTTPS通信。

官方文档说明如下:

禁用自签名证书的证书链验证

参考文档:https://docs.azure.cn/zh-cn/api-management/api-management-howto-mutual-certificates#disable-certificate-chain-validation-for-self-signed-certificates

如果使用自签名证书,则需要禁用证书链验证,使 API 管理能够与后端系统通信。 否则,你将获得 500 错误代码。

若要禁用此验证,可以使用New-AzApiManagementBackend(用于新后端)或Set-AzApiManagementBackend(对于现有后端)PowerShell cmdlet 并将参数设置为-SkipCertificateChainValidationTrue

$context = New-AzApiManagementContext -ResourceGroupName 'ContosoResourceGroup' -ServiceName 'ContosoAPIMService'
New-AzApiManagementBackend -Context  $context -Url 'https://contoso.com/myapi' -Protocol http -SkipCertificateChainValidation $true

还可以使用后端 REST API 禁用证书链验证。

实际的操作中,需要使用到APIM中的 Backend 功能

第一步:新建或修改Backend

可以使用Powershell脚本来创建新的backend,示例脚本如下:

# 登录Azure China
Connect-AzAccount -Environment AzureChinaCloud
# 修改APIM
$apimContext = New-AzApiManagementContext -ResourceGroupName "your resource group name" -ServiceName "your apim name"
# 对已存在的backend进行修改
Set-AzApiManagementBackend -Context  $apimContext -Url 'https://lbca.mylubu.com' -Protocol http -SkipCertificateChainValidation $true
# 新建backend 并设置  -SkipCertificateChainValidation $true
New-AzApiManagementBackend -Context  $apimContext -Url 'https://lbca.mylubu.com' -Protocol http -SkipCertificateChainValidation $true

执行后的效果:

当然,更直接的方式是通过Azure APIM的门户页面创建:

在下面的3步中,最重要的就是一定要反选 Validate Certificate Chain! 默认它是勾选的。

第二步:在API中使用backend

当第一步的Backend创建好之后,如何在API中使用呢?

参考说明:https://docs.azure.cn/zh-cn/api-management/set-backend-service-policy

示例策略如下:

<set-backend-service backend-id="the #1 steps backend id " />

 

第三步:测试

在APIM门户上测试

在Azure 托管的APIM 门户上测试,成功。(不需要上传根证书,中间证书,可节约上传证书后等待APIM完成更新的45分钟左右时间)

 

在AKS自建网关上测试

在AKS Self Host上环境中测试, 访问:curl -H 'Ocp-Apim-Subscription-Key: <APIM Subscription Key>'  'https://<aks service extennal ip>/ca2/'  -k

 

以上方法,可以在不需要证书的情况下,成功访问配置了自签名证书的后端服务API。只是此种办法还是存在一定的安全风险,需要谨慎使用。

 

参考资料

禁用自签名证书的证书链验证 : https://docs.azure.cn/zh-cn/api-management/api-management-howto-mutual-certificates#disable-certificate-chain-validation-for-self-signed-certificates

 



 

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

相关文章
|
1天前
|
存储 人工智能 弹性计算
保姆级教程!阿里云OpenClaw(原Clawdbot)一键部署方案,三步拥有超级AI助理!
OpenClaw怎样部署?阿里云推出OpenClaw(原Clawdbot)一键部署方案,只需三步即可拥有超级AI助理!
258 9
|
1天前
|
存储 人工智能 监控
CoPaw是什么?与OpenClaw有什么区别?
2026年个人智能体爆发,阿里云CoPaw与开源OpenClaw成焦点。前者主打“协同工作台”,支持一键部署、长期记忆与开箱即用技能,面向职场人;后者是极客向AI实验平台,强调本地优先与高度定制。二者代表便捷性与自由度的路线之争。
595 10
|
5天前
|
监控 NoSQL Unix
【Azure Redis】在Azure Cache for Redis上试验monitor指令效果
本文介绍如何在Azure Cache for Redis中实时监控执行命令:通过`MONITOR`命令可实时捕获所有客户端请求日志,含时间戳、数据库号、客户端IP及完整命令。但因其加重主线程负担,**不建议生产环境使用**。
56 10
|
2月前
|
测试技术 Windows
【Azure 环境】在Windows环境中使用OpenSSL生成自签名证书链步骤分享
本文详解如何使用OpenSSL生成自签名证书链,包括根CA、中间CA和服务器证书,并最终打包为包含私钥的PFX文件,适用于内部系统或测试环境部署,步骤清晰,可复制即用。
233 3
|
2天前
|
运维 监控 网络协议
【Azure Container App】Debug Console的调式工具指南
在云原生时代,Azure Container Apps 调试控制台预装12类诊断工具(如ip-utils、netcat、openssl、dig等),覆盖网络、进程、SSL、DNS等全链路排查场景,助开发者快速定位容器故障。
|
22天前
|
安全 Go Python
【Azure Function】在Azure上的 Python Function 资源被扫描出包含安全漏洞
Azure Python Function因`cryptography&lt;41.0.5`(当前3.1.1)存在CVE-2023-5363高危漏洞。本地开发可直接修改requirements.txt;Portal创建的函数则需通过Kudu站点(scm.chinacloudsites.cn)进入/wwwroot,编辑requirements.txt升级版本并重启应用。
127 11
|
21天前
|
缓存
【Azure Event Hub】在VMSS中使用WAD(Window Azure Diagnostic)插件发送日志到Event Hub中报错分析
本文分析Azure VMSS中WAD扩展向Event Hub推送日志时出现丢失的问题。错误提示“Event Hub is too busy”及“50+ batches in queue”表明非服务端瓶颈,而是WAD客户端本地队列满(硬编码上限50批),因日志生成速度超过发送速度所致。建议扩容VMSS实例或优化WAD sinks配置分流日志。
|
19天前
|
缓存 NoSQL API
【Azure APIM】为何APIM自建网关中的cache-lookup-value策略无法正常工作?
APIM自建网关(Self-hosted Gateway)使用`cache-lookup-value`策略时,若配置external Redis缓存却无法命中,常见原因为网关与外部缓存的location/region不一致,日志报错`CacheEventIgnoredDueToRegionMismatch`。解决方法:确保网关YAML中`location`字段与Redis所在region严格匹配;若Redis设为`default`则无限制。需在APIM门户核对并统一配置。
|
19天前
|
开发框架 监控 Java
【Azure App Service】32位 Windows App Service 最大能使用多少内存?
本文详解Windows Azure Web App(32位)内存限制问题:阐明32位进程理论上限4GB、默认用户态仅2GB;对比In-Process(共享w3wp.exe,约2GB)与Out-of-Process(独立dotnet.exe,近4GB)模式的内存差异;解析Sandbox限制(物理内存×75%)、多虚拟目录影响及SCM进程计入规则,并提供Portal、Kudu、App Insights三大监控方案。(239字)
|
2月前
|
人工智能 数据可视化 SEO
外贸独立站怎么做?外贸网站制作步骤及教程分享
外贸平台竞争激烈、成本高企,中小卖家转向低成本外码独立站。本文详解6步搭建法:精准定位→优选境外域名/服务器→充实专业内容→精简页面框架→国产CMS自主建站→持续SEO与线索运营。试错成本低,是突围新路径。(239字)
245 9