news 2026/2/5 17:01:08

【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/2/1 18:33:22

扫频信号 (Sweep/Chirp Signal) 原理与应用

目录 前言 1. 什么是扫频信号? 2. 直观理解:与普通正弦波的区别 3. 常见分类 4. 核心作用:为什么要用扫频信号? 5. 项目实战分析 (结合 FPGA/C 代码) 6. 总结 前言 本文旨在记录扫频信号(Chirp)的时…

作者头像 李华
网站建设 2026/2/1 14:35:36

【Java毕设全套源码+文档】基于springboot的连锁门店管理系统设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/2/1 20:08:57

ssm627软件测试过程管理系统vue

目录SSM627软件测试过程管理系统Vue摘要开发技术源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!SSM627软件测试过程管理系统Vue摘要 SSM627软件测试过程管理系统基于Vue.js前端框架与SSM(SpringSpringMVCMyBatis&#xff0…

作者头像 李华
网站建设 2026/2/2 20:16:43

ssm628师范生说课作业提交系统vue

目录系统概述技术架构核心功能创新点应用价值开发技术源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!系统概述 SSM628师范生说课作业提交系统基于Vue.js前端框架与SSM(SpringSpring MVCMyBatis)后端架构开发&am…

作者头像 李华
网站建设 2026/2/5 8:16:06

从Java全栈工程师视角看微服务架构下的高并发优化

从Java全栈工程师视角看微服务架构下的高并发优化 面试场景描述 今天,我作为一位拥有5年经验的Java全栈开发工程师,正在参加一家互联网大厂的面试。面试官是一位经验丰富的技术负责人,而我是这次面试的应聘者。整个过程充满了专业性与互动性&…

作者头像 李华