安全套接字层(SSL)类别
以下类提供了使用安全套接字层(SSL)协议对安全网络通信的支持,使用本机TLS后端,OpenSSL工具包(OpenSSL Toolkit),或任何适当的TLS插件进行加密和协议处理。
从Qt 5.15版本开始,官方支持的OpenSSL版本是1.1.1或更高版本。
从Qt 5.15.1版本开始,也兼容OpenSSL 3。
此类为UDP套接字提供加密 | |
此类实现服务器端DTLS cookie的生成和验证 | |
此类定义了DTLS cookie生成器的参数 | |
此类表示在线证书状态协议响应 | |
声明了Qt网络中所有SSL类共有的枚举 | |
提供方便的API以处理X509证书 | |
用于访问X509证书扩展的API | |
表示SSL密钥加密算法 | |
包含SSL连接的配置和状态 | |
为服务器提供Diffie-Hellman参数的接口 | |
表示用于椭圆曲线密码算法的椭圆曲线 | |
SSL错误 | |
用于私有和公共键的接口 | |
为预共享密钥(PSK)加密套件提供身份验证数据 | |
在TLS上实现加密的安全TCP服务器 | |
SSL加密套接字,适用于客户端和服务器 | |
描述警报消息的级别 | |
列出警报消息可能有的可能的代码 | |
描述DTLS握手当前的状态 | |
列出TLS后端实现的类 | |
描述QDtls和QDtlsClientVerifier可能发现的错误 | |
描述在线证书状态 | |
描述吊销的原因 | |
列出TLS后端支持的可能的特性 |
有关Android应用程序的信息,请参阅为Android添加OpenSSL支持。
在从源码构建Qt时启用和禁用SSL支持
在从源码构建Qt时,Qt为您构建的后端TLS库编译插件。对于Windows这意味着Schannel,而对于macOS则是Secure Transport。
在所有平台上,配置系统都会检查OpenSSL提供的头文件openssl/opensslv.h
是否存在,该文件由源或开发包提供。如果找到,将启用并构建Qt的OpenSSL后端。
默认情况下,启用了OpenSSL的Qt库在运行时动态加载任何已安装的OpenSSL库。但是,可以通过使用带有-openssl-linked
选项配置Qt,在编译时链接到该库。
当构建链接到OpenSSL的Qt版本时,Qt的构建系统将使用CMake的FindOpenSSL
命令在几个标准位置查找OpenSSL。您可以将CMake变量OPENSSL_ROOT_DIR设置为一个强制指定的位置。
例如
configure -openssl-linked -- -D OPENSSL_ROOT_DIR=<openssl_dir>
要禁用Qt构建中的SSL支持,使用-no-openssl
选项配置Qt。
打包您的应用程序时的注意事项
当您打包应用程序时,可能会运行像windeployqt这样的工具。这会将您使用的库的所有插件复制到plugins/
文件夹中。然而,对于TLS,您只需要一个后端,在打包您的应用程序之前,您可以删除其他插件。例如,如果您在Windows上操作且不需要OpenSSL后端提供的任何额外功能,您可以选择不发送qopensslbackend
插件以及OpenSSL库,而仅发送qschannelbackend
插件。
但是,发送多个后端不会造成问题。Qt将尝试根据顺序加载后端(首先尝试OpenSSL),直到成功加载一个。其他后端将不再使用。
数据报传输层安全性
数据报传输层安全性(DTLS)是一种协议,它为基于数据报的提供安全支持,保护免遭偷听、篡改或消息伪造。DTLS协议基于面向流的传输层安全性(TLS)协议。《QtNetwork》模块使您能够使用用户数据报协议(UDP)使用DTLS,如RFC 6347所述。
导入和导出限制
Qt的二进制安装程序包括由
© 2024 Qt公司有限公司。本文件中所含文档贡献的版权归其各自的拥有者。提供的文档按照自由软件基金会发布的<码">GNU自由文档许可协议第1.3版的条款进行许可。Qt和相应的标志是芬兰的Qt公司及其在世界其他国家的商标。所有其他商标均为其各自所有者的财产。