Azure APIM后端服务能否使用自签名证书实现端到端TLS加密
结论
你对文档的理解完全正确。
- Azure APIM 没有提供直接信任单个自签名叶证书的能力,就算你把自签名的
*.myinternalnetwork.com证书上传到APIM的证书存储,它也不会被识别为可信信任锚点,默认的完整证书链校验逻辑一定会因为找不到可信根证书抛出连接错误。 - 针对自签名证书的场景,必须关闭后端连接的证书链验证选项,才能让APIM正常和后端服务建立TLS连接。
配置说明和可选方案
针对你当前已部署自签名证书的场景
你不需要改动现有公网侧APIM的TLS终止、公共DNS、私有DNS配置,只需要调整后端的TLS校验规则即可:
- 找到APIM中对应内部服务的后端配置项,定位到TLS证书校验板块
- 仅关闭
验证证书链开关,务必保留验证证书名称和验证证书有效期的开关开启 - 这种配置下APIM不会校验证书的签发链是否可信,但仍然会校验你访问的后端域名(比如
service1.myinternalnetwork.com)和证书里的CN/SAN是否匹配、证书是否在有效期内,不会出现TLS完全不校验的风险,足够满足内部传输加密的需求。 - 如果你是用Bicep/ARM/Terraform等基础设施即代码的方式配置,对应将后端资源的
validateCertificateChain字段设为false即可。
如果你不想关闭证书链校验(合规要求场景)
如果你的内部安全规则不允许关闭证书链验证,可以调整证书签发逻辑,不需要改动现有网络架构:
- 先创建一个自签名的根CA证书(注意是CA证书,不是给服务用的叶证书)
- 用这个根CA签发你需要的
*.myinternalnetwork.com通配符叶证书,部署到所有内部服务 - 将根CA证书上传到APIM的受信任根证书存储
- 这种配置下APIM可以通过你上传的私有根CA完成完整的证书链校验,不需要关闭任何校验开关,信任关系就可以正常建立。
补充说明:你现在已经完成的公网侧TLS终止、公网证书绑定、私有DNS解析的配置都是正确的,和后端TLS加密的配置互不影响,调整完上述证书校验配置后就能实现完整的端到端TLS加密。
内容的提问来源于stack exchange,提问作者crig
相关产品推荐
相关产品推荐

