问题标签 [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 投票
2 回答
1228 浏览

wcf - SSL 握手 + WCF + 日志记录

我有一个使用 https 协议的 wcf 服务。我使用证书进行客户端身份验证以及传输级别的安全性。

我想知道是否有办法记录幕后发生的握手细节。我目前正在记录客户端发送的证书的详细信息(使用自定义证书验证器)。但它仅用于客户端身份验证。

我想记录幕后发生的事情。我在几个地方看到他们使用 netmon 查看与握手相关的数据。有没有办法以某种格式记录数据,在 WCF 服务的情况下,它只是讲述发生的握手。

我使用 Windows 服务托管了我的 WCF 服务。

谢谢

0 投票
1 回答
612 浏览

java - SSLHandshakeException 动态 web 项目 java

在我的 Wicket 应用程序中,我想使用肥皂将数据发送到 wsdl 端点。为此,我在 Eclipse(使用 Axis2)中创建了一个动态 Web 项目。连接到端点时出现错误。错误是:

原因:javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径

端点需要用户名和密码,具有抢先连接。

这是我的代码:

如何设置连接到 wsdl (https) 的抢占条件?有人可以向我解释这是如何工作的吗?

谢谢!

0 投票
1 回答
3523 浏览

tcp - TCP 握手失败 - 服务器的回复有什么问题?

我正在使用ENC28J60芯片和PIC18F4620构建服务器。该芯片通过以太网连接到我的电脑。目前,我正在尝试建立 TCP 连接,稍后我将在该连接上建立 HTTP 连接。我以前从未使用过 TCP。

我只在嵌入式设备上实现 TCP,而不是在 PC 上。

发送所需的 ARP 请求和回复后,我打开浏览器,输入芯片的 IP 地址,然后按 Enter。在 Wireshark 中,我看到一个带有 SYN 标志的 TCP 请求1已发出。我相信 SYN 标志表示新的握手启动,所以这很好,不是吗?

我的芯片回复1启用了 SYN 和 ACK 标志。据我了解,这是回复带有 SYN 标志的请求的正确方法。芯片发送的确认号是正确的。现在,根据相同的参考,芯片应该得到一个启用了 ACK 标志的回复。

然而,这个过程似乎重新开始:PC 发送与其第一个数据包完全相同的数据包1,只是“标识”发生了变化。我对我的芯片进行了编程,使其在同一套接字上不断收到 SYN 请求时停止回复,所以这是传输的结束,在浏览器中我读到无法访问服务器。

此连接同时在四个套接字上进行,结果相同。

由于我只是将我的 PC 用作客户端(并且我的以太网端口/驱动程序没有任何问题),因此问题必须与服务器有关,因此与第二个数据包有关。

第二个包有什么问题?Wireshark 不会将任何内容标记为不正确,但客户端不会发送 ACK。


1:这是wireshark接收的数据包:

所有这一切都与其他三个客户端的源端口类似。

为了比较,我向 google.com 发出请求,这是 TCP 流:

0 投票
1 回答
550 浏览

mysql - Ruby on rails,乘客握手错误

任何线索为什么我在使用 apache/passenger/mysql 尝试我的应用程序时会收到以下错误,而在 webtrick 中运行良好?

0 投票
1 回答
104 浏览

ssl - SSL 协议会在初次握手后要求握手吗?

SSL 协议会在初始握手后要求握手吗?

我的意思是一旦握手完成并且数据传输正在发生。是否有需要进行握手/身份验证的情况?如果是这样,在哪种情况下?

0 投票
0 回答
794 浏览

jmeter - RECV TLSv1 ALERT:致命,handshake_failure

我使用 Jmeter2.9 来测试安全的 web 服务。我为客户端和根证书创建了一个密钥库和信任库,它们似乎很好。但是,当我开始使用测试脚本时,我收到以下错误消息:

我尝试修改 jmeter 的 user.properties、jmeter.properties 和 system.properties 中的参数,但没有帮助。

你有什么提示或提示是什么导致了问题以及如何解决?

谢谢你。

0 投票
2 回答
8539 浏览

asp.net - 与服务器成功建立连接,但在登录前握手期间发生错误。TCP 提供程序,错误:0

尝试使用 Windows XP pro 连接到托管在“服务器”上的 SQL Server 2000 数据库时,我总是遇到上述错误。客户端电脑(我的工作环境)是 Windows 7。

到目前为止,我已经使用 Visual Studio 2010 和 Net framework 4.0 开发了我的应用程序。 一切正常。然后我安装了 Visual Studio Express 2012 for Web 和 ASP.NET 4.5。

现在,当我尝试通过连接时,SqlConnection conConnection .Open()我得到了异常:

请注意第二条消息,因为我发现的信息很少:现有连接被远程主机强制关闭

我还没有成功尝试过无数的解决方案,包括:

  • 各种连接字符串(Encrypt=false;)
  • netsh WinSock 显示目录 > winsocks.txt(这里似乎没有发现任何奇怪的应用程序)
  • 客户端和服务器上的 netsh Winsock 重置
  • 从面向 Net 4.0 / Net 4.5 的 Visual Studio 重建应用程序
  • 使用 Visual Studio 开发服务器或本地 IIS Web 服务器
  • IIS 重置,重新启动客户端和服务器 pc variuos 时间
  • 检查了 SQL Server 2000 属性、连接、日志、分析器...

在不卸载 Net 4.5(和 Visual Studio 2012)的情况下,我接下来还能尝试什么?


重要的附加信息

同样的应用程序部署在生产服务器(Windows 7、IIS 7.5、Net framework 4.0)中。实际生产中的应用程序是使用 Visual Studio 2010, net 4.0 编译的,并且连接正确,没有错误(谢天谢地)!因此,在我安装了 VS Express 2012 和 Asp.net 4.5 之后,我的客户端计算机上出现了问题。(我也试过用VS2010打开并重新编译解决方案,但我得到了同样的例外)。


编辑

出于测试目的,我已将使用 VS 2012 / Net 4.0 编译的应用程序部署到“生产”服务器(当然,我从未在其上安装过 Net 4.5)。为此,我创建了一个新网站,应用程序池设置为集成管道并针对 Net Framework v4.0.30319。 现在,这个测试网站成功连接到我的测试 SQL Server 数据库 (SQL 2000) 和我的生产服务器数据库 (SQL7)。 线索:

问题只存在于我的客户端电脑上,罪魁祸首是 Net 4.5?


编辑 2

通过 Visual Studio 2010 或 2012 Server Explorer 连接,数据源:Microsoft SQL Server (SqlClient) 给出相同的异常(唯一的区别是现在是登录前握手超时)。

在此处输入图像描述

相反,从 Microsoft SQL Server Management Studio 2008 连接工作正常!(服务器类型:数据库引擎;服务器名称:myserver\SQL2000;身份验证:SQL Server Auth;登录:密码)

在此处输入图像描述

SQL Server Management Studio 的连接如何正常工作?

0 投票
1 回答
1173 浏览

java - 禁用无线连接时 Socket.getOutputStream() 阻塞

这让我有点发疯。我在 Android 设备上运行以下内容:

我观察到无线连接是否断线:

无限期地阻塞。

太棒了!!!!我可以建立一个超时,如果超时,我可以假设存在一些通信问题。

除了我找不到 Socket.getOutputStream() 应该阻止的任何确认。
不在 Oracle 的 javadoc 中,也不在 Google 的 Android javadoc 中。

这是一种依赖 JVM 的东西吗?我使用 Android 的 dalvik jvm 遇到了这种行为。

有没有人经历过这样的事情?

标记

编辑以添加评论:

我对“SSLSocket.getOutputStream() 在必要时启动 SSL 握手”很感兴趣

什么定义了“如有必要”?这种行为(启动 SSL 握手)是 JVM 规范所要求的吗?IOW 跨 JVM 有保证吗?

当我关闭我的 wifi connex 并尝试创建一个套接字来与我的服务器通信时,我遇到了这种行为。套接字创建工作正常,我已经阅读了原因。我还阅读了确定套接字连接是否可以工作的唯一方法是用它读/写数据。这对我来说不是一个选择,我想知道我是否可以依靠 getOutputStream() 在一分钟内不返回来表示存在连接问题。

想法?评论?

0 投票
2 回答
7384 浏览

c# - Websockets - 在服务器消息上断开连接

我是 Websockets 的新手,正在寻找使用 WS 和 c# 控制台应用程序的工作示例。我遇到了这个,但我已经有问题了。当服务器向客户端发送消息时,似乎连接已关闭。我不确定,但我认为握手没问题。这是一个代码:

服务器:

克伦特:

这是来自客户端的连接请求和消息: 在此处输入图像描述

任何帮助将不胜感激。

0 投票
3 回答
25824 浏览

php - 使用 soapclient 连接到 https 主机:如何解决 SSL 问题?

TLDR

我似乎无法使用SoapClient. 当我的 wget 返回 ahandshake failure时,我怀疑这是原因。

如何使用 SOAP 向该服务器发出 SOAP 请求PHP

完全的

我正在尝试连接到 SOAP 服务器 (https)。它没有客户端证书身份验证,因此连接应该非常简单,但遗憾的是它不是。

问题是我不断收到Could not connect to host消息。

我正在使用的连接方法适用于另一台服务器,并且我已验证我正在正确设置该服务器的位置(将其更改为我控制的服务器,并且我在那里得到响应)。我怀疑问题出在与服务器的 https/ssl 连接上。

情况

  • 我正在Soapclient基于我在本地拥有的 wsdl 创建一个 PHP。
  • 如果我更改端点,我会得到请求和响应标头,并且一切都按预期工作。
  • 这台机器可以从我的服务器访问,尽管当我wget用来连接它时出现一个问题(见下文)无法建立 SSL 连接。
  • 这个问题在 openssl 连接中也很明显(见下文)

我试过了。

有很多关于“没有连接!”的话题,但显然有很多“我的路由器坏了,我的地址打错了等等”。我确实尝试了多次建议的这些设置,但更多的是作为“剪切粘贴”解决方案,以确保它不起作用”然后出于真正的推理。我添加了一些评论

为 wsdl 选项创建一个stream_context。我努力了

(首先只有带有and的ssl选项。然后我添加了数组,最后我添加了键。)verify_peerallow_self_signedhttpsciphersssl

我找到了对这个 bug的引用,但是 1)我没有收到那个警告,2)它似乎与代理相关,3)我的版本应该不再有这个 bug。我在跑php 5.3.10

当我尝试获取网址时,我得到:

如果我尝试连接 openssl,我会得到:

但是如果我强制使用 ssl3,我会得到预期的结果

我试图从这个问题中添加 curl-wrapper,并将 ssl_version 设置为 3(因为这似乎适用于openssl上面的命令)。该包装器确实丢弃了一些参数,所以我不确定这将是多么完整。此外,除非我明确地将检查设置为 false,否则我仍然会收到握手错误。如果我这样做(见下文),我会得到一个空的响应。

原因

如上所述,我怀疑 ssl 握手,但我不知道如何修复它。我不怀疑 wsdl 或客户端创建存在问题,因为连接确实与另一个 wsdl、具有不同位置集的相同 wsdl 等一起工作。纯粹是这个(https)端点让我头疼。

额外的测试。

正如上面使用卷曲包装器的测试一样,我尝试发送一个最小的肥皂信封,正如@halfwarr 似乎在评论中建议的那样。Als 返回一个空响应。

因此,在上面看来,我确实有一种方法可以http 204从服务器中挤出一个,但这几乎没有成功。但这可能是第二个问题?没有把握。

我假设我需要尝试强制使用 ssl3,但我不知道如何(这也可能是错误的路径,所以我试图在这里没有XY 问题:)