セキュア・ソケット・レイヤー (SSL) クラス

以下のクラスは、ネイティブ TLS バックエンド、OpenSSL ツールキット、または適切な TLS プラグインを使用して、暗号化とプロトコル処理を行う Secure Sockets Layer (SSL) プロトコルを使用したセキュアなネットワーク通信をサポートします。

Qt バージョン 5.15 以降では、OpenSSL の公式サポートバージョンは 1.1.1 以降です。

Qt バージョン 5.15.1 以降は OpenSSL 3 とも互換性があります。

QDtls

このクラスは UDP ソケットの暗号化を提供します。

QDtlsClientVerifier

サーバサイドでの DTLS クッキーの生成と検証を行います。

QDtlsClientVerifier::GeneratorParameters

DTLS クッキー生成用のパラメータを定義します。

QOcspResponse

オンライン証明書ステータス・プロトコル応答を表します。

QSsl

のすべての SSL クラスに共通の列挙型を宣言します。Qt Network

QSslCertificate

X509 証明書の便利な API

QSslCertificateExtension

X509 証明書の拡張機能にアクセスするための API です。

QSslCipher

SSL 暗号を表します

QSslConfiguration

SSL 接続の設定と状態を保持します。

QSslDiffieHellmanParameters

サーバーの Diffie-Hellman パラメーター用インターフェース

QSslEllipticCurve

楕円曲線暗号アルゴリズムで使用する楕円曲線を表します。

QSslError

SSLエラー

QSslKey

秘密鍵と公開鍵のインターフェース

QSslPreSharedKeyAuthenticator

事前共有鍵(PSK)暗号スイート用の認証データ

QSslServer

TLS上の暗号化されたセキュアなTCPサーバーの実装

QSslSocket

クライアントとサーバーの両方でSSL暗号化ソケットを使用

QSslSocket::AlertLevel

アラート・メッセージのレベルを記述

QSslSocket::AlertType

アラート・メッセージが持ちうるコードの列挙

QDtls::HandshakeState

DTLS ハンドシェイクの現在の状態を記述する

QSslSocket::ImplementedClass

TLS バックエンドが実装するクラスを列挙する

QDtls::QDtlsError

QDtls および QDtlsClientVerifier が検出できるエラーについて説明する

QOcspResponse::QOcspCertificateStatus

オンライン証明書ステータス

QOcspResponse::QOcspRevocationReason

失効の理由

QSslSocket::SupportedFeature

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ではバックエンドは1つしか必要ないので、アプリケーションをパッケージ化する前に他のプラグインを削除してもかまいません。例えば、Windowsを使用していて、OpenSSLバックエンドが提供する追加機能を必要としない場合、OpenSSLライブラリと同様にqopensslbackend プラグインの出荷を見送り、単にqschannelbackend プラグインを出荷することを選択することができます。

しかし、複数のバックエンドを出荷することは問題ありません。Qtはバックエンドを順番にロードしようとします(OpenSSLが最初にロードされます)。他のバックエンドは使用されません。

データグラムトランスポートレイヤーセキュリティ

Datagram Transport Layer Security (DTLS)は、データグラムベースのアプリケーションのセキュリティを可能にするプロトコルで、盗聴、改ざん、メッセージ偽造からの保護を提供します。DTLSプロトコルは、ストリーム指向のTransport Layer Security (TLS)プロトコルをベースにしている。QtNetworkRFC 6347で定義されているように、User Datagram Protocol (UDP)でDTLSを使用することができる。

インポートとエクスポートの制限

Qt バイナリのインストーラには、QtNetwork で使用される OpenSSL ライブラリが含まれています。 しかし、これらは Qt でビルドされたアプリケーションに自動的にデプロイされるわけではありません。ソフトウェアの種類や地域によっては、インポートやエクスポートの制限があります。デプロイされたアプリケーションで SSL 通信を使用したい開発者は、ユーザが適切なライブラリをインス トールしていることを確認するか、適切な資格を持った法律の専門家に相談し、OpenSSL プロジェクトのコ ードを使用したアプリケーションが、世界の関連する地域でのインポートやエクスポートに対して正しく認証されて いることを確認する必要があります。

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.