如何解决 Azure DevOps webhooks 的“发送请求时出错,因此没有响应。”错误

问题描述 投票:0回答:1

我们使用 Azure DevOps webhooks 在某些工作项发生更改时通知内部应用程序。这已经工作了一年多,但最近它停止工作,在 webhook 历史记录中显示以下错误:

There was an error sending the request, so there was no response.  
Error(s):  
    An error occurred while sending the request.  
    The underlying connection was closed: An unexpected error occurred on a send.  
    Authentication failed because the remote party has closed the transport stream.

Webhook 消息应该由 IIS Web 服务器上运行的应用程序接收。
但该请求甚至没有显示在 IIS 日志中。可能出了什么问题?

Webhook 配置

事件:工作项已更新
过滤器:[任意]
操作:通过 HTTP 发布
URL:[出于安全原因删除]
基本身份验证:是(由于显而易见的原因,此处未列出用户名/密码)
要发送的资源详细信息:全部
要发送的消息:无
要发送的详细消息:无

可能的线索

运行内部应用程序的服务器最近从 Windows Server 2012R2 更新到 Windows Server 2019。
我的猜测是,这更改了支持的 TLS 版本/密码套件,因此无法找到匹配的套件。
Webhooks 支持的密码套件是否记录在某处?

iis azure-devops webhooks
1个回答
0
投票

经过大量调查,确实是由于 DevOps Webhook 客户端和应用程序之间支持的密码套件不匹配造成的。

我使用Wireshark来检查webhook请求的流量。 DevOps Webhook 客户端支持以下 TLS 密码:

  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384(0xc02c)
  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256(0xc02b)
  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384(0xc030)
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256(0xc02f)
  • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384(0xc024)
  • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256(0xc023)
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384(0xc028)
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256(0xc027)
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA(0xc014)

这些都没有在 IIS 服务器上启用。我使用了一个名为“IIS Crypto”的工具来检查服务器上支持的密码。 其中一些已启用,但带有 _Pxxx 后缀。谷歌透露,这是以前使用此表示法的 Windows 版本的遗留物,但在 Windows Server 2019 上不再使用。这导致这些密码实际上并未启用。 删除后缀后,Webhook 再次工作。

© www.soinside.com 2019 - 2024. All rights reserved.