我正在使用 Azure 应用程序网关 v2 将流量路由到包含运行一些托管 aspnet 核心 webapi 的 docker 容器的 VM 的后端池。该应用程序在端口 443 中列出。
网关监听器配置为接受 HTTPS 连接。还添加了 pfx 证书。
网关的 HTTP 设置配置如下:
我希望为该设置提供正确的根证书。我已经按照此处的说明导出了证书:
https://docs.microsoft.com/de-de/azure/application-gateway/certificates-for-backend-authentication
后端池中的所有 VM 都使用与网关监听器相同的证书。
使用 C# 应用程序调用 api 或在浏览器中打开特定 url 时,连接似乎是可信的。
但是我在使用 postman 和 endabled SSL 证书验证调用 api 时出现错误。
错误:无法验证第一个证书
对 sslhopper.com 的检查也表明链中存在问题。
我在 digicert.com 上做 chekc 得到了更多信息。
TLS 证书不受信任
该证书不是由受信任的机构签署的(对照 Mozilla 的根存储进行检查)。如果您从受信任的机构购买了证书,您可能只需要安装一个或多个中间证书。请联系您的证书提供商以获取针对您的服务器平台执行此操作的帮助。
我真的被困在解决这个问题上。非常欢迎所有有用的提示。
生产环境在 Windows Server 上运行,没有网关,但相同的证书有效。所以问题一定出在网关配置的某个地方。
最佳答案
问题已解决。关键线索来自一篇博客文章。
http://blog.repsaj.nl/index.php/2019/08/azure-application-gateway-certificate-gotchas/
Gateway V2:证书链的重要性
我做了一个新的 pfx 证书导出,包括整个链并将其上传到网关。
关于azure - 使用 azure 应用程序网关的认证链中的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58269743/