以下類為使用 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 工程代碼的應用程序在世界相關地區得到正確進齣口認證。