WAF-HTTPS [Encrypted Alert]断开连接

本文涉及的产品
Web应用防火墙 3.0,每月20元额度 3个月
简介: WAF-HTTPS [Encrypted Alert]断开连接

问题背景

使用阿里云的WAF时, HTTPS访问,偶尔会出现 SSL 建立连接失败,抓包发现 WAF返回了Encrypted Alert ,然后发了FIN包结束
内容里头序号 182~197的包都有异常
image.png

问题分析

问题方向确定

问题描述为:抓包发现 WAF返回了Encrypted Alert ,然后发了FIN包结束
分析FIN包是TCP链接中断开时使用的;如图:
image.png

确定该问题不是用户描述的SSL建立链接失败;而是断开链接有问题。

分析报文

定位用户描述的报文,如下确实有看到描述的报文,但是该分析方式无法有效的判断问题:
image.png
使用wireshark功能 Follow TCP Stream(追踪TCP流)观察条有问题的流报文
image.png
可以看到:
A、其中Encrypted Alert与FIN是同时从服务端发送的
B、Encrypted Alert的报文与上一条报文的间隔时间为119.89S
C、No.193的报文客户端马上发送了ACK
D、No.194过了14.948客户端发送了一个RST,ACK报文,重置链接
E、No.181与No.191直接没有任何报文通信

问题定位

总所周知WAF是一个Web应用层面的防护产品,目前WAF的实现访问是使用Tengine做方向代理。即也会有会话保持时长限制;
而WAF的会话保持时长为120S,与No.181与No.191直接的间隔时间非常相近;建议用户根据链接

附录

关于SSL-Encrypted Alert提示
SSL通信在断开连接时均为发送Encrypted Alert信息给客户端告知要关闭ssl会话了,同步会发生FIN,ACK报文从TCP层面断开链接:

Since we are already in an encrypted connection, the only way to really know what is being sent within packets is to make Wireshark or similar tools aware of the keys used in the transmission. Even though this is possible, I think for the purpose of this analysis it is enough to know that the client sends an alert message when the connection is asked to be closed actively by the client or server. The type of this Alert message should be CloseNotify (type 0), but we won’t be able to see it from the raw data. In this case, the client is the sender of the following Alert message:

Secure Sockets Layer
    TLSv1.2 Record Layer: Encrypted Alert
        Content Type: Alert (21)
        Version: TLS 1.2 (0x0303)
        Length: 26
        Alert Message: Encrypted Alert

关于会话超时时间
proxy_read_timeout 60s;
默认:60s
配在:http中、server中、location中
在将请求发送给upstream的server后,后端server就会回传数据,这个时间是两次收取数据的时间差,不是整个的接收时间。比如说负载大、网络卡,在第1次收到请求的数据时断了,然后过了60s后才收到后面的数据,这两个时间差(其实就是两次read的时间差)超过了设置的60s,tengine(nginx)就会超时报错,我当前走的是默认设置60s。

  Defines a timeout for reading a response from the proxied server. The timeout is set only between two successive read operations, not for the transmission of the whole response. If the proxied server does not transmit anything within this time, the connection is closed.
目录
相关文章
|
3月前
|
算法 Java 测试技术
java 访问ingress https报错javax.net.ssl.SSLHandshakeException: Received fatal alert: protocol_version
java 访问ingress https报错javax.net.ssl.SSLHandshakeException: Received fatal alert: protocol_version
|
4月前
|
文字识别 前端开发 API
印刷文字识别操作报错合集之通过HTTPS连接到OCR服务的API时报错,该如何处理
在使用印刷文字识别(OCR)服务时,可能会遇到各种错误。例如:1.Java异常、2.配置文件错误、3.服务未开通、4.HTTP错误码、5.权限问题(403 Forbidden)、6.调用拒绝(Refused)、7.智能纠错问题、8.图片质量或格式问题,以下是一些常见错误及其可能的原因和解决方案的合集。
|
3月前
|
安全 Nacos 数据安全/隐私保护
【技术干货】破解Nacos安全隐患:连接用户名与密码明文传输!掌握HTTPS、JWT与OAuth2.0加密秘籍,打造坚不可摧的微服务注册与配置中心!从原理到实践,全方位解析如何构建安全防护体系,让您从此告别数据泄露风险!
【8月更文挑战第15天】Nacos是一款广受好评的微服务注册与配置中心,但其连接用户名和密码的明文传输成为安全隐患。本文探讨加密策略提升安全性。首先介绍明文传输风险,随后对比三种加密方案:HTTPS简化数据保护;JWT令牌减少凭证传输,适配分布式环境;OAuth2.0增强安全,支持多授权模式。每种方案各有千秋,开发者需根据具体需求选择最佳实践,确保服务安全稳定运行。
326 0
|
6月前
|
安全
HTTP请求错误:”基础连接已关闭,发送时发生错误”
本文讲解HTTP请求错误:”基础连接已关闭,发送时发生错误”的解决方法。
178 0
|
安全 数据安全/隐私保护
使用openssl 模拟ca进行证书的申请和颁发,并使用证书部署网站的安全连接访问,即https的加密通信
使用openssl 模拟ca进行证书的申请和颁发,并使用证书部署网站的安全连接访问,即https的加密通信
79 0
|
Web App开发 网络协议 程序员
面试官:一个TCP连接可以发多少个HTTP请求?
曾经有这么一道面试题:从 URL 在浏览器被被输入到页面展现的过程中发生了什么? 相信大多数准备过的同学都能回答出来,但是如果继续问:收到的 HTML 如果包含几十个图片标签,这些图片是以什么方式、什么顺序、建立了多少连接、使用什么协议被下载下来的呢?
|
负载均衡 网络协议 安全
【服务网格架构】Envoy 架构概览(1):术语,线程模型,监听器和网络(L3 / L4)过滤器和HTTP连接管理
【服务网格架构】Envoy 架构概览(1):术语,线程模型,监听器和网络(L3 / L4)过滤器和HTTP连接管理
|
网络安全
【IntelliJ IDEA】连接https报错问题: E230001: Server SSL certificate verification failed:
最近新安装了一个2018版本的idea,但是用idea去连接SVN的时候出现了这样的错误,在网上搜了很多,都没有用,最后找到这样的方式,把问题搞定,果断把解决方式记录下,以便帮助更多的人。
398 1
【IntelliJ IDEA】连接https报错问题: E230001: Server SSL certificate verification failed:
|
负载均衡 网络协议 安全
Envoy 架构概览(1):术语,线程模型,监听器和网络(L3 / L4)过滤器和HTTP连接管理
Envoy 架构概览(1):术语,线程模型,监听器和网络(L3 / L4)过滤器和HTTP连接管理
|
Java API 网络安全
RestTemplate自定义异常白名单,连接https
RestTemplate自定义异常白名单,连接https