首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何建立TLS连接?TLS握手失败可能这个原因!

TLS问题排查也就面临两类问题: TLS握手阶段 真正加密还没开始,所以依托明文形式的握手信息,还可能找到握手失败原因。...从同一台客户端: 访问API server 1可以 但访问API server 2不行 发现失败原因就是TLS握手失败: 在客户端的应用日志里的错误: javax.net.ssl.SSLHandshakeException...这里日志也无法告诉我们:到底TLS握手哪里问题。所以要做点别的事。 3.2 排除服务端问题 先用趁手小工具 curl,从这台客户端发起对API server 2(握手失败的)的TLS握手,发现能成功。...TLS握手的重要任务之一就是 找到双方共同支持的那个密码套件,即“共同语言”,否则握手就必定会失败。...这是TLS握手中的重要内容,我们的案例1就是因为无法协商出公用的密码套件,所以TLS握手失败了。

86640
您找到你想要的搜索结果了吗?
是的
没有找到

WebSocket 协议 1~4 节

如果设置了 /secure/,那么客户端在和服务端建立了连接之后,必须要先进行 TLS 握手TLS 握手成功后,才可以进行 WebSocket 握手。...如果 TLS 握手失败(比如服务端证书不能通过验证),那么客户端必须关闭连接,终止其后的 WebSocket 握手。...在 TLS 握手成功后,所有和服务的数据交换(包括 WebSocket 握手),都必须建立在 TLS 的加密隧道上。...如果连接发生在 HTTPS(基于 TLS 的 HTTP)端口上,那么要执行一个 TLS 握手。如果 TLS 握手失败,就必须关闭连接;否则的话之后的所有通信都必须建立在加密隧道上。...如果服务端不想接收这个连接的话,它必须返回适当的 HTTP 错误状态码(比如 403 Forbidden)并且终止接下来的 WebSocket 握手过程。

58620

【译】 WebSocket 协议第七章——关闭连接(Closing the Connection)

7.1.3 已经开始 WebSocket 关闭握手 在发送或者收到了关闭帧时,我们可以说已经开始 WebSocket 关闭握手,并且 WebSocket 连接的状态已经到了“关闭中”(CLOSING)状态...终端在确认另一端没有能力接收或者处理关闭帧时,可能会选择省略发送关闭帧,从而在一开始就进入正常错误流程导致 WebSocket 连接关闭。...为了实现这些,客户端必须像第 7.1.7 节中定义的一样让WebSocket 连接失败。 如果任意一端底层的传输连接意外丢失,客户端必须让WebSocket 连接失败。...例如是由于一个临时的错误导致的关闭,在这种情况下能够恢复就能够带来一个稳定的连接,恢复正常的操作。...这个状态码是用于上层应用来表示连接失败是因为 TLS 握手失败(如服务端证书没有被验证过)导致的关闭的。 7.4.2 保留状态码范围 0-999 0-999 的状态码都没有被使用。

6.1K20

JavaScript 服务器推送技术之 WebSocket

结构如下: HTTP: TCP > HTTP HTTPS: TCP > TLS > HTTP WS: TCP > WS WSS: TCP > TLS > WS 2 WebSocket的通信过程 首先,Websocket...Websocket 其实是一个新协议,但是为了兼容现有浏览器的握手规范而借用了HTTP的协议来完成一部分握手。...客户端与服务端通过TCP三次握手建立连接,如果这个建立连接失败,那么后面的过程就不会执行,Web应用程序将收到错误消息通知。...否则握手连接失败,Web应用程序触发onerror,并且能知道连接失败的原因。...网上的帖子大多深浅不一,甚至有些前后矛盾,在下的文章都是学习过程中的总结,如果发现错误,欢迎留言指出~ 官方文档: MDN - WebSocket W3C - The WebSocket API RFC

1.5K30

【译】 WebSocket 协议第十章——安全性考虑(Security Considerations)

10.5 WebSocket 客户端认证 这个协议在 WebSocket 握手时,没有规定服务端可以使用哪种方式进行认证。...10.6 连接保密性和完整性 连接保密性是基于运行 TLSWebSocket 协议(wss 的 URLs)。WebSocket 协议实现必须支持 TLS,并且应该在与对端进行数据传输时使用它。...如果在连接中使用 TLSTLS带来的连接的收益非常依赖于 TLS 握手时的算法的强度。例如,一些 TLS 的加密算法不提供连接保密性。为了实现合理登记的保护措施,客户端应该只使用强 TLS 算法。...如果这个无效的数据是在 WebSocket 握手时收到的,服务端应该响应一个合适的 HTTP 状态码(RFC2616)。 使用错误的编码来发送数据是一类通用的安全问题。...10.8 在 WebSocket 握手中使用 SHA-1 在这个文档中描述的 WebSocket 握手协议是不依赖任意 SHA-1 的安全属性,流入抗冲击性和对第二次前映像攻击的抵抗力(就像 RFC4270

83040

【译】 WebSocket 协议第十一章——IANA 注意事项(IANA Considerations)

服务器和资源名称,表明通过这个链接的传输需要通过 TLS(包含标准的 TLS 能力例如数据保密性和完整性以及终端认证)来进行保护。...URI 协议含义 这个方案的唯一操作就是使用 WebSocket 协议打开一个连接,通过 TLS 加密。...Sec-WebSocket-Key 头字段是用在 WebSocket 开始握手阶段。它是通过客户端发送给服务端,这部分信息用于服务端证明收到一个有效的 WebSocket 握手操作的认证。...Sec-WebSocket-Version 头字段在服务端理解的版本不匹配从客户端收到的版本导致的 WebSocket 握手失败时,也从服务端发送给客户端。...hybi@ietf.org RFC6455 1015 TLS握手 hybi@ietf.org RFC6455 11.8 WebSocket 操作码注册表 该规范根据 RFC5226 中规定的原则为

82230

【译】 WebSocket 协议第十章——安全性考虑(Security Considerations)

10.5 WebSocket 客户端认证 这个协议在 WebSocket 握手时,没有规定服务端可以使用哪种方式进行认证。...10.6 连接保密性和完整性 连接保密性是基于运行 TLSWebSocket 协议(wss 的 URLs)。WebSocket 协议实现必须支持 TLS,并且应该在与对端进行数据传输时使用它。...如果在连接中使用 TLSTLS带来的连接的收益非常依赖于 TLS 握手时的算法的强度。例如,一些 TLS 的加密算法不提供连接保密性。为了实现合理登记的保护措施,客户端应该只使用强 TLS 算法。...如果这个无效的数据是在 WebSocket 握手时收到的,服务端应该响应一个合适的 HTTP 状态码(RFC2616)。 使用错误的编码来发送数据是一类通用的安全问题。...10.8 在 WebSocket 握手中使用 SHA-1 在这个文档中描述的 WebSocket 握手协议是不依赖任意 SHA-1 的安全属性,流入抗冲击性和对第二次前映像攻击的抵抗力(就像 RFC4270

1.9K30

跨平台长连接组件设计及可插拔改造

:实现 WebSocket 协议及维护心跳 TLS 层:基于 mbedTLS 实现 TLS 协议及数据加解密 TCP 层:基于 libuv 实现 TCP 连接和数据的读写 整体架构如下图所示...WebSocketWebSocket 层包含了对协议的实现和心跳的维护。 其最新的协议是 13 RFC 6455。协议的实现分为握手,数据发送/读取,关闭连接。 握手 握手要从请求头去理解。...同时要注意 Sec-WebSocket-Key 字段,它由客户端生成并发给服务端,用于证明服务端接收到的是一个可受信的连接握手,可以帮助服务端排除自身接收到的由非 WebSocket 客户端发起的连接,...解耦 首先我们要对四层结构的职责进行明确 Worker :提供业务接口和回调 WebSocket :负责 WebSocket 握手,封装/解析帧数据和维护心跳 TLS :负责 TLS 握手和数据的加解密...,参照 WebSocket 协议实现了其握手及数据读写,同时抽象出通信接口及回调,为了和原生层交互,iOS 和 Android 分别采用 runtime 消息发送和 JNI 进行原生方法调用。

73630

跨平台长连接组件设计及可插拔改造

event loop 包含了六个阶段: timers 阶段:这个阶段执行 timer( setTimeout 、 setInterval )的回调 I/O callbacks 阶段:执行一些系统调用错误...WebSocketWebSocket 层包含了对协议的实现和心跳的维护。 其最新的协议是 13 RFC 6455。协议的实现分为握手,数据发送/读取,关闭连接。 握手 握手要从请求头去理解。...同时要注意 Sec-WebSocket-Key 字段,它由客户端生成并发给服务端,用于证明服务端接收到的是一个可受信的连接握手,可以帮助服务端排除自身接收到的由非 WebSocket 客户端发起的连接,...解耦 首先我们要对四层结构的职责进行明确 Worker :提供业务接口和回调 WebSocket :负责 WebSocket 握手,封装/解析帧数据和维护心跳 TLS :负责 TLS 握手和数据的加解密...总结 回顾一下跨平台长连接组件的设计,我们使用 libuv 和 mbedtls 分别实现 TCP 和 TLS ,参照 WebSocket 协议实现了其握手及数据读写,同时抽象出通信接口及回调,为了和原生层交互

72130

刨根问底 HTTP 和 WebSocket 协议(下)

4.如果上一步中的TCP连接建立失败,则此WebSocket连接失败。 5.如果协议是wss,则在上一步建立的TCP连接之上,使用TSL发送握手信息。...如果含有Sec-WebSocket-Extensions头,要判断是否之前的Request握手带有此内容,如果没有,则连接失败。...如果含有Sec-WebSocket-Protocol头,要判断是否之前的Request握手带有此协议,如果没有,则连接失败。...接受了客户端的连接请求,服务端要做的一些事情 如果请求是HTTPS,则首先要使用TLS进行握手,如果失败,则关闭连接,如果成功,则之后的数据都通过此通道进行发送。...之后服务端可以进行一些客户端验证步骤(包括对客户端header域的验证),如果需要,则按照RFC2616来进行错误码的返回。 如果一切都成功,则返回成功的Response握手消息。

1.4K10

WebSocket安全性分析

WebSocket 握手消息的几个特性值得注意: 请求和响应中 的Connection和Upgrade标头表明这是一次 WebSocket 握手。...这样做是为了防止错误配置的服务器或缓存代理导致误导性响应。 三次握手以后表示建立了客户端与服务端建立websocket连接,可以通过websocket协议进行通信。...服务器可以采用任何 HTTP 服务器的客户端身份认证机制,如 cookie认证,HTTP 基础认证,TLS 身份认证等。 因此,认证实现方面的安全问题与基于HTTP的Web认证并无区别。...websocket安全问题如何预防 正确验证输入输出的数据,跟http协议一样 使用CSRF Token、请求头令牌等方案保护WebSocket握手流程,防止WebSocket握手流程被CSRF攻击所利用...使用wss://协议,(基于TLS的Websockets) 在服务器进行授权,防止越权的产生。

29610

云安全 | k8s 提权漏洞 CVE-2018-1002105 学习

以下内容为自己个人的学习笔记,因此内容不会多么详实;其中有些内容也许会存在错误,如有错误欢迎留言处指出,还望谅解。...为了实现和 HTTP 的兼容性,WebSocket 握手使用 HTTP 的 Upgrade 头,即表示从 HTTP 协议改成 WebSocket 协议,以下是一个简单的 WebSocket 握手请求。...Options 实例,这里看下其中的 NewOptions 函数 在第 61 行可以看到如果请求中没有给出 stdin、stdout 和 stderr 这三个参数,这个 Options 实例将创建失败...而且因为 getExec 报错失败了,所以这种连接也没有对接到某个 Pod 上,连接也没有被销毁,客户端可以继续通过这个连接向 Kubelet 发送指令。...-n test /bin/hostname kubectl --token=password --server=https://172.16.214.18:6443 --insecure-skip-tls-verify

2K20

HTML5(十二)——一文读懂 WebSocket 原理

二、WebSocket 通信过程 WebSocket 协议可分为两部分:握手阶段和数据通信阶段。...= Upgrade: websocket 2.3、数据通讯 WebSocket 握手连接成功之后。...ws.close() 然后发送关闭帧给对方,通常会带有关闭连接的状态码,常见的状态码如下: 1000 连接正常关闭 1001 端点离线,例如服务器down,或者浏览器已经离开此页面 1002 端点因为协议错误而中断连接...端点收到的数据帧类型不一致而导致连接关闭 1008 数据违例而关闭连接 1009 收到的消息数据太大而关闭连接 1010 客户端因为服务器未协商扩展而关闭 1011 服务器因为遭遇异常而关闭连接 1015 TLS...握手失败关闭连接 三、websocket 实例 3.1、客户端创建websocket对象,并建立连接之后发送数据。

1.1K20

HTML5(十二)——一文读懂 WebSocket 原理

二、WebSocket 通信过程 WebSocket 协议可分为两部分:握手阶段和数据通信阶段。...= Upgrade: websocket 2.3、数据通讯 WebSocket 握手连接成功之后。...ws.close() 然后发送关闭帧给对方,通常会带有关闭连接的状态码,常见的状态码如下: 1000 连接正常关闭 1001 端点离线,例如服务器down,或者浏览器已经离开此页面 1002 端点因为协议错误而中断连接...端点收到的数据帧类型不一致而导致连接关闭 1008 数据违例而关闭连接 1009 收到的消息数据太大而关闭连接 1010 客户端因为服务器未协商扩展而关闭 1011 服务器因为遭遇异常而关闭连接 1015 TLS...握手失败关闭连接 三、websocket 实例 3.1、客户端创建websocket对象,并建立连接之后发送数据。

1.3K30

HTML5(十二)——一文读懂 WebSocket 原理

二、WebSocket 通信过程 WebSocket 协议可分为两部分:握手阶段和数据通信阶段。...= Upgrade: websocket 2.3、数据通讯 WebSocket 握手连接成功之后。...ws.close() 然后发送关闭帧给对方,通常会带有关闭连接的状态码,常见的状态码如下: 1000 连接正常关闭 1001 端点离线,例如服务器down,或者浏览器已经离开此页面 1002 端点因为协议错误而中断连接...端点收到的数据帧类型不一致而导致连接关闭 1008 数据违例而关闭连接 1009 收到的消息数据太大而关闭连接 1010 客户端因为服务器未协商扩展而关闭 1011 服务器因为遭遇异常而关闭连接 1015 TLS...握手失败关闭连接 三、websocket 实例 3.1、客户端创建websocket对象,并建立连接之后发送数据。

1.3K30

万字图解 | 深入揭秘HTTP工作原理

: HTTPS握手(TLS-ECDHE) 实际抓包HTTPS握手过程: 1、ClientHello:TCP连接建立后,Client会发出ClientHello请求,开始进行TLS握手。...TLS RSA加密 其实最开始的TLS握手过程没有那么复杂,以前使用的是RSA传统的加密手段,但是由于无法保证前向安全所以逐渐淘汰了 握手过程如下: ClientHello:TLS版本、客户端随机数、...请求,开始进行TLS握手。...工作原理 WebSocket并没有从零开始设计,反而是站在HTTP协议的基础上进行设计。WebSocket也需要进行握手后,才能正式收发数据。...客户端收到响应报文,就可以用同样的算法,比对值是否相等,如果相等,则握手成功。 最终报文如下: 完整握手交互抓包 websocket报文帧

29210
领券