以下类为使用 SSL (安全套接字层) 协议进行安全网络通信提供支持,使用 OpenSSL 工具包 去履行加密和协议处理。
从 Qt 5.15 起,官方支持 OpenSSL v1.1.1 及以上。
从 Qt 5.15.1 起,兼容 OpenSSL 3。
当从源代码构建 Qt 时,配置系统会检查是否存在
openssl/opensslv.h
由 OpenSSL 源代码 (或开发者包) 提供的 Header (头)。
默认情况下,启用 SSL 的 Qt 库在运行时会动态加载任何已安装的 OpenSSL 库。无论如何,在编译时链接到库是可能的,通过配置 Qt 采用
-openssl-linked
选项。
当构建链接到 OpenSSL 的 Qt 版本时,构建系统会尝试链接 libssl 和 libcrypt 库 (位于开发者的系统默认位置)。此位置是可配置的:设置
OPENSSL_LIBS
环境变量以包含把 Qt 链接到已安装库所需的链接器选项。例如,在 Unix/Linux 系统:
OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked
要禁用 SSL 支持在 Qt 构建中,配置 Qt 采用
-no-openssl
选项。
DTLS (安全数据报传输层) 是为基于数据报的应用程序,提供防窃听、防篡改或防消息伪造保护的一种安全协议。DTLS 协议基于面向流的 TLS (传输层安全) 协议。 QtNetwork 使能够使用采用 UDP (用户数据报协议) 的 DTLS,作为定义通过 RFC 6347 .
Qt 二进制安装程序包括的 OpenSSL 库,使用要通过 QtNetwork 。不管怎样,这些不会自动部署到采用 Qt 构建的应用程序中。进出口限定适用于某些类型的软件,也适用于世界某些地区。希望在部署应用程序中使用 SSL 通信的开发者应确保其用户有安装合适的库,或者,他们应咨询具备适当资格的法律专业人士,以确保使用 OpenSSL 工程代码的应用程序在世界相关地区得到正确进出口认证。