如何在QT windows应用程序中启用SSL?

Pet*_*etr 7 c++ ssl qt

Qt要求在系统上安装开放的ssl库.在debian/ubuntu中,当我使用apt安装open ssl时,一切正常.但是当我在Windows中编译我的应用程序时,SSL功能不可用我可以通过执行来验证这一点

QSslSocket::supportsSsl()
Run Code Online (Sandbox Code Playgroud)

如何让它在Windows中运行?我从http://www.slproweb.com/products/Win32OpenSSL.html下载并安装了open ssl,但它仍然返回false.

Pet*_*etr 17

所以经过很长一段时间我想出了问题所在:

这两个库需要与Windows系统文件夹中的可执行文件位于同一文件夹中(我认为是system32):

libeay32.dll
ssleay32.dll
Run Code Online (Sandbox Code Playgroud)

您将在OpenSSL文件夹的\ bin中找到它们,因为我复制了这两个库,它可以工作

  • 我有一个安装太新版本的问题所以对于其他人仍有这个问题:检查`QSslSocket :: sslLibraryBuildVersionString();`并确保安装相同的XY版本的OpenSSL(我使用1.1.0但需要1.0.X) (2认同)

Das*_*sun 9

您必须在项目中添加OpenSSL lib.在Windows Qt中没有OpenSSL lib.(我认为这是一个法律问题).您可以在发布的URI中找到OpenSSL开发人员库.如果您正在编译32位框架,则需要下载的是Win32 OpenSSL v1.0.1e

这就是我项目中的内容.

QT += core gui network
win32{
    LIBS += -LC:/OpenSSL-Win32/lib -lubsec
    INCLUDEPATH += C:/OpenSSL-Win32/include
}
Run Code Online (Sandbox Code Playgroud)