0

目前我正在做一些事情,需要我的客户端在 windows xp 环境中使用 TLSv1.2 连接到主机服务器。我已经使用 openssl 静态库构建了我的应用程序 dll,并使用相同的 openssl dll 来调用我的客户端示例应用程序。我正在使用 Visual Studio 2012 进行构建。该dll在windows 7环境下工作得很好,但它不适用于windows xp。以下是我迄今为止尝试和探索的内容。

1)在visual studio的项目属性中,我们可以选择我们要构建的环境。我为 windows xp 选择了相同的。 Windows XP 构建的 Visual Studio 属性

2) 我正在使用支持 TLS v1.2 的 openssl v1.0.2j 来构建我的应用程序 dll。

3) 在我的 dll 代码中,我对将 ctx 初始化为 tlsv1_2_method() 进行了更改。

4) 我的客户端应用程序调用了使用Visual Studio 构建的应用程序dll,它在Windows XP 上运行。主机服务器使用 TLSv1.2 协议进行通信。所以我的客户端应用程序应该使用 TLSv1.2 进行通信,这就是我猜的问题所在。如果我使用的是 sslv3,它工作正常。

如果我在我的代码中使用 sslv3_method() 并使用相同的设置进行构建,我可以从 xp 中的示例应用程序调用我的 dll 并且它工作正常。但是当我使用 tlsv1_2_method() 时,它不起作用,给出错误,找不到 my.dll。

我已经添加了所有必需的支持库,并使用依赖walker 软件进行了检查。没有依赖的dll丢失。

我google了上面的问题,发现windows xp不支持TLSv1.1、TLSv1.2。但我也发现如果我们不使用windows协议通信机制和我们自己的通信应用程序,那么它可以做到。但我没有资源也不需要深入的知识来做到这一点。

是否有任何方法或步骤可以单独为 windows xp 构建 openssl 库?

如果你能告诉我是否有办法可以做到这一点,那将有很大的帮助。我是否需要以其他方式为 windows xp 构建 openssl 库,或者是否有任何我缺少的设置。以下是我通过链接获取有关此问题的信息。

支持 ssltls-protocols-on-windows

请指导我如何使 tlsv1.2 在 Windows XP 上工作。

4

0 回答 0