Secure Sockets Layer (SSL) Classes

下列类使用SSL协议提供安全的网络通信, 使用 OpenSSL Toolkit 提供加密和协议处理.

从Qt 5.6版开始, 官方支持的OpenSSL版本是1.0.0或更高版本.

QSsl

Qt网络中所有SSL类的通用枚举类型

QSslCertificate

X509证书的基础API

QSslCertificateExtension

X509证书的扩展API

QSslCipher

SSL加密密码

QSslConfiguration

保存SSL连接的配置和状态

QSslDiffieHellmanParameters

服务器中的Diffie-Hellman参数接口

QSslEllipticCurve

ECC算法中的椭圆曲线

QSslError

SSL错误

QSslKey

私钥和公钥接口

QSslPreSharedKeyAuthenticator

PSK密码身份验证数据

QSslSocket

C/S通用的SSL加密套接字

Enabling and Disabling SSL Support

从源码构建Qt时, 配置系统会检测是否存在由OpenSSL源码或开发包提供的 openssl/opensslv.h.

默认情况下, 启用SSL的Qt库在运行时动态加载已安装的OpenSSL库. 但是, 使用 -openssl-linked 选项配置Qt, 可以在编译时链接库.

构建链接OpenSSL的Qt版本时, 构建系统尝试链接默认位置的libssl和libcrypt库. 这个默认位置通过环境变量 OPENSSL_LIBS 配置. Unix/Linux系统如下:


  OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked

在Qt构建时, 使用 -no-openssl 选项禁用SSL.

进出口限制

Qt二进制安装程序的QtNetwork模块使用OpenSSL库. 然而, Qt构建时不自动包含OpenSSL库. 在某些地区, 针对某类软件存在进出口限制. 开发人员希望在其应用程序中使用SSL通信, 因确保用户安装OpenSSL库, 或者咨询专业的法律人士, 取得正确的导入导出认证.