问题标签 [handshake]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2674 浏览

request - Opera 12 中的 WebSocket 握手失败(错误请求)

我目前正在为我的学士论文工作,最近开始“深入”研究 node.js 和 webSocket 的使用。在 Firefox 15.0 和 Chrome 21.0.1180.89 m 中访问时,我的 webSocket 服务器运行没有问题。在 Opera 12.02 中,客户端-服务器握手似乎存在问题。这是 Opera 的错误控制台所说的:

有趣的是:我在 Dragonfly 控制台的网络日志中的任何地方都找不到这个错误。访问网站时请求的所有字段(index.html、client.js 等)都已找到并按原样提供(HTTP 状态代码 200 OK)。此外,我的服务器返回的唯一状态代码是 200、404 和 500,所以这看起来像是来自 webSocket 本身。

是的,在 Opera 中启用了 webSocket ...我不知道问题可能是什么

任何帮助将非常感激 :)

编辑:到目前为止,这是我的代码,因此您可以看到我的服务器发送了哪些标头以及如何使用 client.js 创建 webSocket 连接:

server.js:

客户端.js:

0 投票
4 回答
3939 浏览

java - Google GCM 无法为 Java SSL 服务器进行 SSL 握手

我最近发现了适用于 Android 的 Google Cloud Messaging,我想集成我的应用程序以使用它。我让项目的 Android 端正常工作,并且应用程序已正确注册到服务器。问题是我的服务器似乎无法对 GCM 服务器进行身份验证,因此它可以与它们对话。这就是我的意思:

目前,我的服务器是一个简单的基于 Java 的 SSL 服务器,带有一个密钥库和一个信任库。信任库包含客户端的密钥(即应用程序的密钥),反之亦然,客户端/服务器可以通过 SSL 相互通信而不会出现任何问题。我用来向应用程序发送消息的代码是这样的:

它给了我以下例外:

当我启动我的服务器时,我传入信任/密钥库的名称及其密码并加载它们,以便它们可以用于与客户端对话。我怀疑问题在于当前信任库仅包含客户端的密钥,因此服务器只能与客户端交谈,而不能与其他人交谈。这是正确的吗,如果是,任何人都知道如何将 GCM 证书添加到信任库或其他东西?

非常感谢,非常感谢任何帮助:)

PS我尝试在服务器中加载信任库之前向客户端发送一条消息,并且应用程序成功接收到它。

0 投票
1 回答
381 浏览

serial-port - 串行端口:硬件握手仅在发送方打开,传输仍然有效

我正在通过 DB-9 串行端口发送数据,并且我想使用 HW CTS/RTS 握手。奇怪的是,即使我在接收方关闭握手,发送方仍然会发送数据。这对我来说没有意义,因为发送者应该等待 CTS 信号的到来,而接收者显然不应该在握手关闭时发送。

我已经检查过我有一个完整的握手零调制解调器电缆,而不仅仅是一个循环支持的电缆。

这是正常行为还是我的想法有问题?我已经用不同的编程语言尝试过。

0 投票
0 回答
2318 浏览

ssl - 通过 SilverTunnel netlib 连接时,与 ActiveMQ 服务器的 SSL 握手会产生 NullPointerException

概括

无论有没有 netlib,通过 TCP 连接到 ActiveMQ 都可以正常工作。
在没有 netlib 的情况下通过SSL连接可以正常工作,但在使用 netlib 时会失败

注意:我使用的是apache-activemq-5.6.0silvertunnel.org_netlib-0.14-beta

无论是使用 netlib 的 tcpipNetLayer 还是 torNetLayer,都会出现这个问题。然而,为了简单起见,这里只考虑 tcpipNetLayer 的情况。

顺便说一句,SSL + netlib 与 HornetQ 消息服务器(以不同的方式实现 SSL 身份验证)配合得很好,但 HornetQ 遇到的问题导致我尝试使用 ActiveMQ。

为方便起见,我创建了一个简单的测试用例,其中包含一个消费者和两个不同的生产者。

  • 生产者在没有 netlib 的情况下连接 - 工作正常。
  • producer-tcpip使用 tcpipNetLayer 与 neltib 连接 - 出现以下错误:

为 ActiveMQ 启用 SSL 调试后,producer-tcpip 程序将以下错误消息输出到控制台,然后挂起:

这是 SSL 握手的中途,因为 producer-tcpip 程序会生成 log4j 消息:

然后,当 producer-tcpip 程序被杀死(例如使用 ctrl+C)时,activemq.log 报告:

我不知道是什么原因造成的,也不知道如何解决。任何人都可以帮忙吗?

重现问题的步骤(需要不到 15 分钟):

下载测试用例

下载最新的 ActiveMQ 到测试目录

编辑 conf/activemq.xml 以接受 ssl

用以下几行替换 transportConnectors 条目(以启用 SSL)

启动服务器

查看日志输出

打开另一个控制台,然后 cd 进入testing-AMQ-Netlib-SSL目录

将最新的 SilverTunnel netlib 下载到测试目录中

将源代码编译成三个可运行的 jar 文件在不同的目录中

运行消费者

打开另一个控制台,然后 cd 进入testing-AMQ-Netlib-SSL/producer目录

运行生产者

让它运行一会儿,让自己满意,然后按 ctrl+C 杀死生产者

运行生产者-tcpip

让它运行一点来满足你自己它已经停止在 NullPointerException 然后通过按 ctrl+C 来杀死 producer-tcpip

注意 producer-tcpip 输出中的调试消息

还要注意出现在 activemq.log 底部的错误消息(请参阅第一个控制台窗口的尾部输出)或在当前提示符下键入

谢谢你的帮助!

0 投票
1 回答
1375 浏览

haskell - Haskell中的Gmail TLS hanshake失败

我正在尝试编写一个小脚本来通过 gmail 发送电子邮件。
我可以连接到 gmail,但是当我尝试 hanshake 时它失败了。
有什么建议可以握手吗?

这是代码:

这是错误:

HandshakeFailed (Error_Packet_Parsing "读取失败:无效标头类型:50\nFrom:\theader\n\n")

0 投票
2 回答
7814 浏览

security - 为什么客户端hello是sslv2时握手协议是sslv3

我们在尝试使用 windows xp sp3(即 v6)上的 wininet 连接的客户端应用程序获得成功的 SSL 连接时遇到问题。客户端 hello 看着我,为什么 hello 将其版本声明为 SSL 2.0,然后将握手版本声明为 SSL 3.0?使用 wininet 的应用程序中是否存在错误编码?

0 投票
2 回答
6338 浏览

facebook - Ubuntu 中的 OpenSSL 1.0.1 握手解决方法?

我在 Ubuntu 12.04 上的 OpenSSL 1.0.1 中遇到了一个严重的错误:

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=665452

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=666051 <- 2012 年 10 月 3 日!

它的要点是我能够连接到一些服务器,但不能连接到其他服务器。连接到谷歌作品:

openssl s_client -connect mail.google.com:443 -debug -state -msg -CAfile /etc/ssl/certs/ca-certificates.crt

但连接到 facebook 不会:

openssl s_client -connect graph.facebook.com:443 -debug -state -msg -CAfile /etc/ssl/certs/ca-certificates.crt -cipher SRP-AES-256-CBC-SHA

facebook 连接要么在客户端发送它的 hello 缓冲区后挂起,并且永远不会收到服务器的 hello 响应,要么如果我传入它识别的密码,则返回错误代码。这发生在 -tls1 和 -ssl3 上。我已经尝试了我能想到的 openssl 的每个参数。

apt-cache showpkg openssl

我还尝试了所有我能想到的 curl 参数,但没有成功,因为它在后台使用了 openssl。

我担心 Ubuntu 无法建立安全连接(我意识到这是一个令人震惊的声明)。经过两天的努力解决这个问题,我现在基本上是在祈祷有人知道解决方法。我正在考虑降级到 OpenSSL 1.0.0 或将 libcurl4-dev 与 gnutls-dev 一起使用。这两种解决方案都会在我嘴里留下腐烂的味道。提前感谢您提供的任何帮助。

PS 所有这些工作都是为了让我的服务器可以与外部 https REST API 交互。我认为这是当今任何网络服务器的基本要求,没有任何借口。

更新:这是我的输出,没有传递密码。我是否通过 -CAfile 都没关系:

openssl s_client -connect graph.facebook.com:443 -debug -state -msg -CAfile /etc/ssl/certs/ca-certificates.crt

0 投票
7 回答
66961 浏览

node.js - 在 socket.io 中与握手数据一起发送自定义数据?

所以我有一个运行 node js 的应用程序,socket.io 作为后端,普通的 javascript 作为前端。我的应用程序有一个登录系统,目前它只是让客户端在连接后立即发送其登录数据。

现在我认为将登录数据与握手数据一起发送会更好,所以我可以直接让用户在连接时登录(而不是在建立连接后)分别在登录数据无效时拒绝授权。

我认为最好将我的附加数据放在握手数据的标题部分中,所以有什么想法可以做到这一点吗?(如果可能,不必修改 socket.io,但如果这是我可以忍受的唯一方法)

0 投票
1 回答
2349 浏览

python - 洪流客户端:向对等方发送握手消息

从我得到对等列表并建立到对等的 tcp 连接,我尝试向他们发送握手消息,但他们似乎没有响应。

这是我在代码中的消息:

self.getInfoHash(torrentCont) 是种子文件的原始哈希

这是我发送的实际内容:

关于我做错了什么的任何建议?

0 投票
1 回答
661 浏览

ios - Socket.io 蜂窝握手 iOS 超时

我正在通过标准 HTTP NSURLConnection 进行 socket.io 握手调用,奇怪的是我只有在通过 Wifi 连接时才得到响应,否则连接超时。我知道套接字不能通过 Wifi 工作,应该使用 xhr-polling 进行蜂窝连接,但是仅通过 Wifi 工作的 HTTP 连接没有意义,因此我什至无法轮询,因为我根本无法连接......

有什么想法吗?