强制 ServerXMLHTTP 使用现有的 Windows 套接字连接到互联网?

Posted

技术标签:

【中文标题】强制 ServerXMLHTTP 使用现有的 Windows 套接字连接到互联网?【英文标题】:Force ServerXMLHTTP to use existing windows socket to connect to internet? 【发布时间】:2013-10-16 07:13:55 【问题描述】:

是否可以强制 ServerXMLHTTP 通过现有的 Windows 套接字连接到 Internet?

由于某些原因,我正在使用 VB6 winsock 控件,并且将 winsock 连接到某台 PC。我想用 SSL 协议与那台 PC 通信,但是我需要实现太多东西才能让 winsock 像 ServerXMLHTTP 一样正常工作。

那么,是或否,我可以强制 ServerXMLHTTP(或事件 WinInet)使用现有的 Windows 套接字工作吗?

【问题讨论】:

您是只想对两台计算机之间的普通 TCP 连接进行 SSL 加密,还是在两台计算机之间建立 SSL 加密的 HTTP 连接 (HTTPS)? @NormanH:我只想保护 TCP 连接,但使用 VB6,即使使用 openSSL 也很难。 (据我所知,以前没有人结合过 VB6 和 OpenSSL)。所以,我要让一台PC作为网络服务器,另一台作为客户端。 ServerXMLHTTP 是我首先想到的……但是,等等,我需要通过现有的 winSock 完全连接! 做了一些搜索,如果你自己动手,看起来你想要完成的事情充其量是相当困难的。查看这个线程的详细信息。 xtremevbtalk.com/showthread.php?t=295328 您已经建立了一个现有的连接,只是希望在某些时候对其进行 SSL 加密?如果您只想加密您的通信,为什么不使用简单的共享密钥密码并仅加密您想要安全的通信?这可能是最简单的方法,同时保留重复使用单个套接字连接的需要。但是,据我所知,没有标准协议可以支持该操作。 @NormanH 我这里有 AES128 和 RC4,但我想实现 SSL 协议的全部功能,因为我需要对我的连接有信心。我搜索了每篇“闻到”SSL 的文章,但一无所获。我愿意在 *** 上为任何人提供 500 名声望来帮助我实现这一目标。 【参考方案1】:

这里有几个选项用于通过 VB6/COM 接口实现 SSL 协议。

围绕 .NET Framework 自定义代码和libraries for encryption 公开 COM 接口,然后从 VB6 应用程序调用您的 .NET 创建的 COM 接口。 使用已为您实施 SSL 协议的 off-the-shelf component。 在VB6中实现full SSL specification

在澄清需要使用“现有 Windows 套接字”后,我将更新答案并提供更多详细信息。

【讨论】:

我正在尝试使用 RSA_WITH_AES128_AND_SHA512 (CipheSpec = 0x2f) 实现 SSL V3.0 或更高版本。关于您的回答: 1/我知道加密功能已经存在,在 .Net 或 CryptoAPI 中,但我在 VB6 中已经足够了。关键是,我需要将所有这些组合在一个复杂的系统中,其中包含大量的语法、结构、等等等等…… 2/ 那里的所有商业 activeX 组件都非常昂贵。 3/ 我必须阅读那么长的 RFC 并遵循更长的相关文档吗?需要十几年。我需要一条捷径,这就是这个问题的目标。谢谢。

以上是关于强制 ServerXMLHTTP 使用现有的 Windows 套接字连接到互联网?的主要内容,如果未能解决你的问题,请参考以下文章

ShipModul 的 Miniplex-3Wi 强制关闭 TCP 连接

如何防止 ServerXMLHTTP 自动跟随重定向(HTTP 303 请参阅其他响应)?

Fastlane 匹配不使用现有的签名证书

苹果手机无线和蓝牙怎么关闭自动开启

linux unzip 怎么强制覆盖?

Msxml2.ServerXMLHTTP 和 WinHttp.WinHttpRequest 之间的区别?