news 2026/4/26 14:14:23

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

作者头像

张小明

前端开发工程师

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

问题描述

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

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

访问流图

错误信息

/* by 01130.hk - online tools website : 01130.hk/zh/htmloutjs.html */forward-request (356.754 ms) { "messages": [/* by 01130.hk - online tools website : 01130.hk/zh/htmloutjs.html */ "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: Feb29,2028Current date: Jan17,2026PEM 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

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 18:35:09

Go进阶之垃圾回收

所谓垃圾就是不再需要的内存块.垃圾如果不清理就没办法再次分配使用,在不支持垃圾回收的编程语言里.这些垃圾的内存就是泄漏的内存.1.垃圾回收算法:引用计数法:对每个对象维护一个引用计数.当引用该对象的对象被销毁时.引用计数减一.当引用计数器为0时回收该对象.优点:对象可以…

作者头像 李华
网站建设 2026/4/17 16:46:59

‌用AI做国际化测试:自动生成多语言环境下的文本溢出测试

一、背景与挑战:为什么文本溢出是国际化测试的“隐形杀手”‌国际化(i18n)测试的核心目标,是确保软件在不同语言、文化与区域设置下保持功能完整与视觉一致。然而,‌文本溢出(Text Overflow)‌—…

作者头像 李华
网站建设 2026/4/17 18:48:58

为什么AI生成的测试用例总能发现“逻辑漏洞“?

一、传统测试的认知茧房与AI的破壁利器在软件测试领域,逻辑漏洞如同潜伏在代码深处的幽灵。传统测试方法依赖测试工程师的经验积累与需求文档推导,这种基于确定性的测试设计存在三重天然局限:路径依赖陷阱人类测试者容易陷入"需求文档即…

作者头像 李华
网站建设 2026/4/24 14:47:51

ssm626智能办公系统请假销假薪酬工资vue主管

目录SSM626智能办公系统功能摘要开发技术源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!SSM626智能办公系统功能摘要 请假销假模块 采用Vue.js前端框架实现动态表单交互,员工可在线提交请假类型(事假、病假、年…

作者头像 李华
网站建设 2026/4/25 8:02:21

ssm637网络购物商城系统vue

目录系统概述技术架构核心功能创新点应用价值开发技术源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!系统概述 SSM637网络购物商城系统基于Vue.js前端框架与SSM(SpringSpring MVCMyBatis)后端架构开发&#xff…

作者头像 李华
网站建设 2026/4/26 13:30:17

电脑无法加载驱动怎么解决?教你手动安装正确方法

设备驱动程序是硬件与操作系统沟通的桥梁,当它无法加载时,相关设备将无法正常工作。这个问题通常由驱动文件损坏、系统兼容性或权限冲突引起,并非无法解决。理解其根源并掌握正确的排查方法,是快速修复的关键。 为什么电脑无法加载…

作者头像 李华