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

简介: 本文介绍在Azure API管理(APIM)中使用自签名证书时,因CA证书不受信任导致后端HTTPS连接失败的问题及解决方案。通过分析错误日志和验证流程,指出需将根CA和中间CA证书分别上传至APIM的受信任证书库,并强调仅上传完整链PFX文件无效。最终按正确步骤上传CER格式的CA证书后,问题得以解决,实现安全通信。

问题描述

在博文“【Azure 环境】在Windows环境中使用OpenSSL生成自签名证书链步骤分享”,我们通过OpenSSL已经创建了自签名证书PFX文件。

当把证书配置到后端API服务,并且通过APIM作为服务对外提供的网关入口后,发现客户端请求发送到APIM,但是APIM访问后端服务器时候,无法建立Https连接。报错500。

访问流图

错误信息

forward-request (356.754 ms)
{
    "messages": [
        "Error occured while calling backend service.",
        "The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.",
        "The remote certificate is invalid according to the validation procedure."
    ]
}

在开启APIM调试Trace后,可见错误信息

面对这个问题,需要如何解决呢?

 

问题解答

因为浏览器发起HTTPS请求后,服务器会返回它的证书信息到客户端进行验证。但由于使用的自签名证书的根CA,中间证书都不是受信任机构所颁发的证书,所以在操作系统中没有内置CA信息,所以被浏览器认为这是不受信任的证书。就直接中断连接,返回net::ERR_CERT_AUTHORITY_INVALID 错误。

HTTPS证书验证流程图:

当CA证书不受信任的时候,浏览器报错如下

Your connection is not private

Attackers might be trying to steal your information from lbca.mylubu.com (for example, passwords, messages, or credit cards).

Learn more about this warning net::ERR_CERT_AUTHORITY_INVALID

Subject: *.mylubu.com


Issuer: My Self Intermediate CA


Expires on: Feb 29, 2028


Current date: Jan 17, 2026


PEM encoded chain:

-----BEGIN CERTIFICATE-----

MIIE3zCCAsegAwIBAgIUVoVVHuMRMxqelxTsX4OPtc3EnuUwDQYJKoZIhvcNAQEL

BQAwYTELMAkGA1UEBhMCQ04xEDAO
......

SxmYHLkIM/VbtjWKixl7mKltQMwbUvRMW+vOkZu/ibEtyG+OfGBIA9InKqE0BSng

HNIRYgeO7r1AfMtLHUCy+RmC6AueslBWqdSminThQD8HbY+YvGFU9/zduVRY/Uic

3wFr

-----END CERTIFICATE-----

如果对于本地客户端,解决方案就是把完整证书链的服务器证书PFX安装到本地就可以。当本地证书库中包含了这个服务器证书的中间证书,根证书后,浏览器访问就会被信任。

但是在APIM服务上,应该如何处理呢?

根据官方文档 “如何在 Azure API 管理中添加自定义 CA 证书”的介绍,APIM服务支持上传CA证书。

 

在AIPM的证书管理页面,因为我们的服务器证书是一张包含根证书,中间证书,服务器证书的完整证书链证书,所以心想,是否可以直接上转这一张证书就可以了呢?

实验证明,不可以!

错误实验第一步:上传服务器证书到CA Certificates

错误实验第二步:访问APIM接口,错误依旧

正确实验,按照要求,先后上传了根CA,中间CA证书。再次访问APIM接口,获取200返回,问题解决,自签名证书验证成功。

注意:在上传证书页面,只支持cer和pfx格式证书(File extension for rootCA.crt is not present in the allowed file extensions list - "cer,pfx")。所以openSSL生成的.crt 证书可以通过Windows中双击打开文件后,选择导出为CER证书。

1: 双击 rootCA.crt

2: 选择 Details 项

3: 点击Copy to File 按钮,在弹出的窗口中直接点击Next

4: 默认选择第一个 DER encoded binary X.509 (.CER)

5: 点击 Next, 在新一个窗口中选择 CER文件的保存路径。

 

 

 

参考资料

在Windows环境中使用OpenSSL生成自签名证书链步骤分享 : https://www.cnblogs.com/lulight/p/19479238

如何在 Azure API 管理中添加自定义 CA 证书 : https://docs.azure.cn/zh-cn/api-management/api-management-howto-ca-certificates

 



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

相关文章
|
16天前
|
JSON Java 数据格式
Feign 复杂对象参数传递避坑指南:从报错到优雅落地
本文深入剖析了SpringCloud Feign在复杂对象参数传递中的常见问题及解决方案。文章首先分析了GET请求传递复杂对象失败的底层原因,包括HTTP规范约束和Feign参数解析逻辑。针对GET场景,提供了四种解决方案:@SpringQueryMap(首选)、手动拆分属性+@RequestParam、MultiValueMap封装和自定义FeignEncoder,详细比较了各方案的优缺点和适用场景。对于POST场景,推荐使用@RequestBody注解传递JSON请求体。
269 5
|
21天前
|
人工智能 缓存 安全
探秘 AgentRun丨动态下发+权限隔离,重构 AI Agent 安全体系
函数计算AgentRun提供双向凭证管理:入站控制“谁可调用”,出站保障“调用谁”的安全。支持动态更新、加密存储、本地缓存与自动注入,杜绝硬编码与泄露风险,无需重启服务。让开发者专注业务,安心落地AI Agent。
|
1月前
|
数据采集 供应链 监控
什么是RFID/EPC编码-SGTIN96
SGTIN是GS1标准下的商品序列化编码,结合GTIN与唯一序列号,实现单品级标识与追溯。广泛应用于零售、供应链、防伪等领域,支持RFID自动识别,提升管理效率。可通过工具实现EPC、GS1 Digital Link、条码格式间一键转换,并支持批量生成打印,助力智能化供应链管理。
233 5
|
1月前
|
存储 数据采集 弹性计算
面向多租户云的 IO 智能诊断:从异常发现到分钟级定位
当 iowait 暴涨、IO 延迟飙升时,你是否还在手忙脚乱翻日志?阿里云 IO 一键诊断基于动态阈值模型与智能采集机制,实现异常秒级感知、现场自动抓取、根因结构化输出,让每一次 IO 波动都有据可查,真正实现从“被动响应”到“主动洞察”的跃迁。
316 64
|
11天前
|
人工智能 搜索推荐 安全
企业建站如何选择网站建设平台或CMS建站系统
截至2026年1月,中国网站超460万个。建站首选SAAS(如阿里云/腾讯云建站)或成熟CMS(如PageAdmin、PHPCMS、Ecshop),避免使用无维护的个人开源系统。重内容、轻排名,AI时代网站是品牌知识入口,需持续更新优质内容。(239字)
271 12
|
15天前
|
云安全 数据可视化 安全
企业官网搭建_SAAS建站和CMS系统建站如何选型?
优质企业官网是品牌门户与增长引擎。建站主流分SAAS(腾讯/阿里/华为云建站,适合轻量、快速上线的小企业)和CMS系统(如PageAdmin、WordPress,适配中长期运营、私有部署、国产化、外贸等多元需求)。选型需匹配发展阶段与核心诉求。
126 10