セキュア・ソケット・レイヤー (SSL) クラス
以下のクラスは、ネイティブ TLS バックエンド、OpenSSL ツールキット、または適切な TLS プラグインを使用して、暗号化とプロトコル処理を行う Secure Sockets Layer (SSL) プロトコルを使用したセキュアなネットワーク通信をサポートします。
Qt バージョン 5.15 以降では、OpenSSL の公式サポートバージョンは 1.1.1 以降です。
Qt バージョン 5.15.1 以降は OpenSSL 3 とも互換性があります。
このクラスは UDP ソケットの暗号化を提供します。 | |
サーバサイドでの DTLS クッキーの生成と検証を行います。 | |
DTLS クッキー生成用のパラメータを定義します。 | |
オンライン証明書ステータス・プロトコル応答を表します。 | |
のすべての SSL クラスに共通の列挙型を宣言します。Qt Network | |
X509 証明書の便利な API | |
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ではバックエンドは1つしか必要ないので、アプリケーションをパッケージ化する前に他のプラグインを削除してもかまいません。例えば、Windowsを使用していて、OpenSSLバックエンドが提供する追加機能を必要としない場合、OpenSSLライブラリと同様にqopensslbackend
プラグインの出荷を見送り、単にqschannelbackend
プラグインを出荷することを選択することができます。
しかし、複数のバックエンドを出荷することは問題ありません。Qtはバックエンドを順番にロードしようとします(OpenSSLが最初にロードされます)。他のバックエンドは使用されません。
データグラムトランスポートレイヤーセキュリティ
Datagram Transport Layer Security (DTLS)は、データグラムベースのアプリケーションのセキュリティを可能にするプロトコルで、盗聴、改ざん、メッセージ偽造からの保護を提供します。DTLSプロトコルは、ストリーム指向のTransport Layer Security (TLS)プロトコルをベースにしている。QtNetwork 、RFC 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.