Api 随机调用失败 - 请求被中止:无法创建 SSL/TLS 安全通道
Posted
技术标签:
【中文标题】Api 随机调用失败 - 请求被中止:无法创建 SSL/TLS 安全通道【英文标题】:Api random call fails - The request was aborted: Could not create SSL/TLS secure channel 【发布时间】:2017-06-20 16:02:48 【问题描述】:我们有一个电子商务网站,它调用我们自己的 API(Web Api 位于 Windows 2008 服务器 + IIS 上)将订单从在线转移到本地系统。
Api 几个月来一直运行良好,但现在我们收到随机错误,我们的日志报告为“请求已中止:无法创建 SSL/TLS 安全通道。”
代码可以正常工作 24 小时左右然后失败,之后的每个调用都会失败。然后我们重新启动电子商务站点(它托管在 Azure 中,因此我们重新启动实例)。重新启动站点后,对 Api 的调用将再次开始工作。
我们正在使用 Restsharp 调用 Api。
我们已经查看了证书等,这些看起来都很好(它也没有解释为什么有时它可以正常工作)。
大约在它开始失败的同时,我们在电子商务网站上引入了一个新插件,该插件使用 Amazon C# 客户端将来自亚马逊的订单拉入电子商务网站。
程序每隔一小时左右按计划任务运行一次。
这个问题可能与某种 IIS 缓存有关吗?也许亚马逊需要与我们在 win 2008 服务器上托管的 Api 不同版本的 TLS?
【问题讨论】:
只是预感(以前去过那里)。您的新插件可能会在某个时候设置或覆盖静态证书验证回调吗? ServicePointManager.ServerCertificateValidationCallback (msdn.microsoft.com/en-us/library/…) 有人知道如何解决这个问题吗?我也随机遇到这个问题。 【参考方案1】:代码可以正常工作 24 小时左右然后失败,之后的每个调用都会失败。然后我们重新启动电子商务站点(它托管在 Azure 中,因此我们重新启动实例)。重新启动站点后,对 Api 的调用将再次开始工作。
我认为你的时间有问题。 您需要服务器/客户端上的正确时间来创建 SSL/TSL 安全通道。 似乎当您重新启动站点时 - 时间正在同步,并且在 24 小时内由于某种原因它再次不同步。试着朝那个方向看。
【讨论】:
【参考方案2】:代码可以正常工作 24 小时左右,然后失败
SSL 签名可能会在 24 小时后过期。来自https://***.com/a/38128395/7321214的引用。
【讨论】:
以上是关于Api 随机调用失败 - 请求被中止:无法创建 SSL/TLS 安全通道的主要内容,如果未能解决你的问题,请参考以下文章
“请求被中止:无法创建 SSL/TLS 安全通道”第一次访问 API 时
发出请求时出错:请求被中止:无法创建 SSL/TLS 安全通道
在 Service Fabric 中通过 HTTPS 调用 WCF:请求被中止:无法创建 SSL/TLS 安全通道