QSslCertificate Class
QSslCertificate クラスは、X.509 証明書を扱うための便利な API を提供します。詳細...
| ヘッダー: | #include <QSslCertificate> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6::Network) |
| qmake: | QT += network |
- 継承されたメンバーを含む、すべてのメンバーの一覧
- QSslCertificateは、ネットワークプログラミングAPIおよび暗黙的に共有されるクラスの一部です。
注:このクラスのすべての関数は再入可能です。
パブリック型
| enum class | PatternSyntax { RegularExpression, Wildcard, FixedString } |
| enum | SubjectInfo { Organization, CommonName, LocalityName, OrganizationalUnitName, CountryName, …, EmailAddress } |
パブリック関数
| QSslCertificate(QIODevice *device, QSsl::EncodingFormat format = QSsl::Pem) | |
| QSslCertificate(const QByteArray &data = QByteArray(), QSsl::EncodingFormat format = QSsl::Pem) | |
| QSslCertificate(const QSslCertificate &other) | |
(since 6.8) | QSslCertificate(QSslCertificate &&other) |
| ~QSslCertificate() | |
| void | clear() |
| QByteArray | digest(QCryptographicHash::Algorithm algorithm = QCryptographicHash::Md5) const |
| QDateTime | effectiveDate() const |
| QDateTime | expiryDate() const |
| QList<QSslCertificateExtension> | extensions() const |
| Qt::HANDLE | handle() const |
| bool | isBlacklisted() const |
| bool | isNull() const |
| bool | isSelfSigned() const |
| QString | issuerDisplayName() const |
| QStringList | issuerInfo(QSslCertificate::SubjectInfo subject) const |
| QStringList | issuerInfo(const QByteArray &attribute) const |
| QList<QByteArray> | issuerInfoAttributes() const |
| QSslKey | publicKey() const |
| QByteArray | serialNumber() const |
| QMultiMap<QSsl::AlternativeNameEntryType, QString> | subjectAlternativeNames() const |
| QString | subjectDisplayName() const |
| QStringList | subjectInfo(QSslCertificate::SubjectInfo subject) const |
| QStringList | subjectInfo(const QByteArray &attribute) const |
| QList<QByteArray> | subjectInfoAttributes() const |
| void | swap(QSslCertificate &other) |
| QByteArray | toDer() const |
| QByteArray | toPem() const |
| QString | toText() const |
| QByteArray | version() const |
| bool | operator!=(const QSslCertificate &other) const |
| QSslCertificate & | operator=(const QSslCertificate &other) |
| bool | operator==(const QSslCertificate &other) const |
静的パブリックメンバー
| QList<QSslCertificate> | fromData(const QByteArray &data, QSsl::EncodingFormat format = QSsl::Pem) |
| QList<QSslCertificate> | fromDevice(QIODevice *device, QSsl::EncodingFormat format = QSsl::Pem) |
(since 6.10) QList<QSslCertificate> | fromFile(const QString &filePath, QSsl::EncodingFormat format = QSsl::Pem) |
| QList<QSslCertificate> | fromPath(const QString &path, QSsl::EncodingFormat format = QSsl::Pem, QSslCertificate::PatternSyntax syntax = PatternSyntax::FixedString) |
| bool | importPkcs12(QIODevice *device, QSslKey *key, QSslCertificate *certificate, QList<QSslCertificate> *caCertificates = nullptr, const QByteArray &passPhrase = QByteArray()) |
| QList<QSslError> | verify(const QList<QSslCertificate> &certificateChain, const QString &hostName = QString()) |
詳細な説明
QSslCertificate は X509 証明書を格納し、通常、ローカルホスト、リモート接続先のピア、または信頼できるサードパーティの認証機関の身元を確認し、それらに関する情報を格納するために使用されます。
QSslCertificate を構築する方法は数多くあります。最も一般的な方法は、QSslCertificate オブジェクトを返す `QSslSocket::peerCertificate()` を呼び出すか、そのリストを返す `QSslSocket::peerCertificateChain()` を呼び出すことです。 また、DER(バイナリ)またはPEM(Base64)でエンコードされたバンドルから証明書を読み込むこともできます。これらは通常、1つ以上のローカルファイルとして、あるいはQtリソース内に保存されています。
isNull() を呼び出すことで、証明書が null かどうかを確認できます。デフォルトでは、QSslCertificate は null 証明書を生成します。null 証明書は無効ですが、無効な証明書が必ずしも null であるとは限りません。証明書内のすべての内容をリセットしたい場合は、clear() を呼び出してください。
証明書を読み込んだ後、version()、serialNumber()、issuerInfo()、subjectInfo() などの多数のアクセサ関数のいずれかを呼び出すことで、証明書、そのサブジェクト、および発行者に関する情報を取得できます。effectiveDate() およびexpiryDate() を呼び出すことで、証明書の有効開始日と有効期限を確認できます。publicKey() 関数は、証明書のサブジェクトの公開鍵をQSslKey として返します。issuerInfo() またはsubjectInfo() を呼び出すことで、証明書の発行者およびそのサブジェクトに関する詳細情報を取得できます。
内部的には、`QSslCertificate` は X509 構造体として格納されています。handle() を呼び出すことでこのハンドルにアクセスできますが、その結果は移植性がない可能性があります。
QSslSocket 、QSslKey 、QSslCipher 、およびQSslErrorも参照してください 。
メンバ型のドキュメント
enum class QSslCertificate::PatternSyntax
パターンの意味を解釈するために使用される構文。
| 定数 | 値 | 説明 |
|---|---|---|
QSslCertificate::PatternSyntax::RegularExpression | 0 | Perl 風の豊富なパターンマッチング構文。 |
QSslCertificate::PatternSyntax::Wildcard | 1 | これは、シェル(コマンドインタプリタ)で「ファイルグロブ」に使用されるものと同様の、シンプルなパターンマッチング構文を提供します。QRegularExpression::fromWildcard() を参照してください。 |
QSslCertificate::PatternSyntax::FixedString | 2 | パターンは固定の文字列です。これは、escape() を使用してすべてのメタ文字をエスケープした文字列に対して RegularExpression パターンを適用することと同等です。これがデフォルトの設定です。 |
enum QSslCertificate::SubjectInfo
QSslCertificate::issuerInfo() またはQSslCertificate::subjectInfo() に渡すことで、証明書の発行者またはサブジェクトに関する情報を取得できるキーについて説明します。
| 定数 | 値 | 説明 |
|---|---|---|
QSslCertificate::Organization | 0 | "O" 組織名。 |
QSslCertificate::CommonName | 1 | "CN" 共通名。ほとんどの場合、ホスト名を格納するために使用されます。 |
QSslCertificate::LocalityName | 2 | 「L」 所在地。 |
QSslCertificate::OrganizationalUnitName | 3 | 「OU」 組織単位名。 |
QSslCertificate::CountryName | 4 | 「C」 国。 |
QSslCertificate::StateOrProvinceName | 5 | 「ST」 州または県。 |
QSslCertificate::DistinguishedNameQualifier | 6 | 識別名修飾子 |
QSslCertificate::SerialNumber | 7 | 証明書のシリアル番号 |
QSslCertificate::EmailAddress | 8 | 証明書に関連付けられた電子メールアドレス |
メンバー関数のドキュメント
[explicit] QSslCertificate::QSslCertificate(QIODevice *device, QSsl::EncodingFormat format = QSsl::Pem)
device からformat 形式でエンコードされたデータを読み込み、最初に見つかった証明書を使用して、QSslCertificate を作成します。後でisNull() を呼び出すことで、device に証明書が含まれていたかどうか、およびその証明書が正常に読み込まれたかどうかを確認できます。
[explicit] QSslCertificate::QSslCertificate(const QByteArray &data = QByteArray(), QSsl::EncodingFormat format = QSsl::Pem)
format でエンコードされたdata を解析し、最初に検出された証明書を使用して、QSslCertificateを生成します。後でisNull()を呼び出すことで、data に証明書が含まれていたかどうか、およびその証明書が正常に読み込まれたかどうかを確認できます。
QSslCertificate::QSslCertificate(const QSslCertificate &other)
other の完全なコピーを作成します。
[constexpr noexcept default, since 6.8] QSslCertificate::QSslCertificate(QSslCertificate &&other)
other から新しい QSslCertificate を移動生成します。
注: 移動元のオブジェクト `other `は 、部分的に形成された状態になります。この状態では、有効な操作はデストラクションと新しい値への代入のみです。
この関数は Qt 6.8 で導入されました。
[noexcept] QSslCertificate::~QSslCertificate()
QSslCertificate を削除します。
void QSslCertificate::clear()
この証明書の内容を消去し、ヌル証明書にします。
isNull()も参照してください 。
QByteArray QSslCertificate::digest(QCryptographicHash::Algorithm algorithm = QCryptographicHash::Md5) const
この証明書の暗号ダイジェストを返します。デフォルトではMD5ダイジェストが生成されますが、algorithm を指定して独自のダイジェストを生成することも可能です。
QDateTime QSslCertificate::effectiveDate() const
証明書が有効になる日時を返します。ただし、証明書がnullの場合は、空のQDateTime を返します。
expiryDate()も参照してください 。
QDateTime QSslCertificate::expiryDate() const
証明書の有効期限となる日時を返します。証明書がnullの場合は、空のQDateTime を返します。
effectiveDate()も参照してください 。
QList<QSslCertificateExtension> QSslCertificate::extensions() const
この証明書の X509 拡張情報を含むリストを返します。
[static] QList<QSslCertificate> QSslCertificate::fromData(const QByteArray &data, QSsl::EncodingFormat format = QSsl::Pem)
data 内の、指定されたformat でエンコードされたすべての証明書を検索して解析し、それらを証明書のリストとして返します。
fromDevice()も参照してください 。
[static] QList<QSslCertificate> QSslCertificate::fromDevice(QIODevice *device, QSsl::EncodingFormat format = QSsl::Pem)
device 内の、指定されたformat でエンコードされたすべての証明書を検索して解析し、それらを証明書のリストとして返します。
fromData()も参照してください 。
[static, since 6.10] QList<QSslCertificate> QSslCertificate::fromFile(const QString &filePath, QSsl::EncodingFormat format = QSsl::Pem)
ファイル `filePath ` からデータを読み込み、指定された `format ` でエンコードされたすべての証明書を解析し、`QSslCertificate ` オブジェクトのリストを返します。
filePath が通常ファイルでない場合、このメソッドは空のリストを返します。
この関数は Qt 6.10 で導入されました。
fromData() およびfromPath()も参照してください 。
[static] QList<QSslCertificate> QSslCertificate::fromPath(const QString &path, QSsl::EncodingFormat format = QSsl::Pem, QSslCertificate::PatternSyntax syntax = PatternSyntax::FixedString)
path 内のすべてのファイルから、指定されたformat でエンコードされた証明書を検索し、それらをリストとして返します。path は、syntax で指定されているように、ファイル、または1つ以上のファイルに一致するパターンでなければなりません。
例:
const autocerts=QSslCertificate::fromPath("C:/ssl/certificate.*.pem",
QSsl::Pem,QSslCertificate::Wildcard);
for(constQSslCertificate&cert: certs) {
qDebug() << cert.issuerInfo(QSslCertificate::Organization);
}fromData()も参照してください 。
Qt::HANDLE QSslCertificate::handle() const
ネイティブの証明書ハンドルが存在する場合は、そのポインタを返します。存在しない場合は、nullptr を返します。
このハンドルをネイティブ API と組み合わせて使用することで、証明書に関する詳細情報にアクセスできます。
警告: この関数の使用は 移植性が低い可能性が高く、その戻り値はプラットフォームごとに異なる場合や、マイナーリリースごとに変更される場合があります。
[static] bool QSslCertificate::importPkcs12(QIODevice *device, QSslKey *key, QSslCertificate *certificate, QList<QSslCertificate> *caCertificates = nullptr, const QByteArray &passPhrase = QByteArray())
指定されたdevice からPKCS#12(pfx)ファイルをインポートします。PKCS#12ファイルは、複数の証明書や鍵を含むことができるバンドルです。このメソッドは、バンドルから単一のkey 、そのcertificate 、および関連するcaCertificates を読み取ります。passPhrase が指定されている場合、これを使用してバンドルの復号化が行われます。 PKCS#12ファイルの読み込みに成功した場合、true を返します。
注: device は 開かれており、読み取り可能な状態である必要があります。
bool QSslCertificate::isBlacklisted() const
この証明書がブラックリストに登録されている場合は `true ` を返し、そうでない場合は `false` を返します。
isNull()も参照してください 。
bool QSslCertificate::isNull() const
これがヌル証明書(つまり、内容のない証明書)である場合は `true ` を返し、それ以外の場合は `false` を返します。
デフォルトでは、QSslCertificate はヌル証明書を生成します。
clear()も参照してください 。
bool QSslCertificate::isSelfSigned() const
この証明書が自己署名型の場合、true を返します。それ以外の場合は、false を返します。
証明書の発行者と対象が同一である場合、その証明書は自己署名証明書とみなされます。
QString QSslCertificate::issuerDisplayName() const
発行者を表す名前を返します。利用可能な場合は `QSslCertificate::CommonName ` を返します。そうでない場合は、最初の `QSslCertificate::Organization ` または最初の `QSslCertificate::OrganizationalUnitName` にフォールバックします。
issuerInfo()も参照してください 。
QStringList QSslCertificate::issuerInfo(QSslCertificate::SubjectInfo subject) const
証明書から「subject 」の発行者情報を返します。証明書内に「subject 」に関する情報がない場合は、空のリストを返します。各タイプのエントリは複数存在する場合があります。
subjectInfo()も参照してください 。
QStringList QSslCertificate::issuerInfo(const QByteArray &attribute) const
証明書から「attribute 」の発行者情報を返します。証明書に「attribute 」に関する情報が存在しない場合は、空のリストを返します。1つの属性に対して複数のエントリが存在する場合があります。
subjectInfo()も参照してください 。
QList<QByteArray> QSslCertificate::issuerInfoAttributes() const
この証明書の発行者情報に含まれる値を持つ属性のリストを返します。特定の属性に関連付けられた情報には、issuerInfo() メソッドを使用してアクセスできます。なお、このリストには、SSL バックエンドが認識していない要素の OID が含まれる場合があることに注意してください。
subjectInfo()も参照してください 。
QSslKey QSslCertificate::publicKey() const
証明書のサブジェクトの公開鍵を返します。
QByteArray QSslCertificate::serialNumber() const
証明書のシリアル番号を16進数形式の文字列として返します。
QMultiMap<QSsl::AlternativeNameEntryType, QString> QSslCertificate::subjectAlternativeNames() const
この証明書の代替サブジェクト名のリストを返します。代替名には通常、この証明書に対して有効なホスト名(必要に応じてワイルドカードを含む)が含まれます。
CommonName のサブジェクト情報に有効なホスト名が定義されていない場合、またはサブジェクト情報が相手側のホスト名と一致しない場合、これらの名前は接続先のホスト名に対して照合されます。
subjectInfo()も参照してください 。
QString QSslCertificate::subjectDisplayName() const
対象を表す名前を返します。利用可能な場合は `QSslCertificate::CommonName ` を返し、そうでない場合は最初の `QSslCertificate::Organization ` または最初の `QSslCertificate::OrganizationalUnitName` にフォールバックします。
subjectInfo()も参照してください 。
QStringList QSslCertificate::subjectInfo(QSslCertificate::SubjectInfo subject) const
subject に関する情報を返します。証明書内にsubject に関する情報がない場合は、空のリストを返します。各タイプについて、複数のエントリが存在する場合があります。
issuerInfo()も参照してください 。
QStringList QSslCertificate::subjectInfo(const QByteArray &attribute) const
attribute の対象情報を返します。証明書内にattribute に関する情報がない場合は、空のリストを返します。1つの属性に対して複数のエントリが存在する場合があります。
issuerInfo()も参照してください 。
QList<QByteArray> QSslCertificate::subjectInfoAttributes() const
この証明書のサブジェクト情報に値を持つ属性のリストを返します。特定の属性に関連付けられた情報には、subjectInfo() メソッドを使用してアクセスできます。なお、このリストには、SSL バックエンドが認識していない要素の OID が含まれる場合があることに注意してください。
subjectInfo()も参照してください 。
[noexcept] void QSslCertificate::swap(QSslCertificate &other)
この証明書インスタンスをother と交換します。この操作は非常に高速で、失敗することはありません。
QByteArray QSslCertificate::toDer() const
この証明書をDER(バイナリ)エンコード形式に変換したものを返します。
QByteArray QSslCertificate::toPem() const
この証明書をPEM(Base64)エンコード形式に変換したものを返します。
QString QSslCertificate::toText() const
この証明書を、人間が読みやすいテキスト形式に変換したものを返します。
[static] QList<QSslError> QSslCertificate::verify(const QList<QSslCertificate> &certificateChain, const QString &hostName = QString())
証明書チェーンを検証します。検証対象のチェーンは、certificateChain パラメータで指定します。リストの最初の証明書は、検証対象のチェーンの末端証明書である必要があります。hostName が指定された場合、その証明書が指定されたホスト名に対して有効であるかどうかもチェックされます。
なお、ルート(CA)証明書は検証対象のリストに含めないでください。これは、デフォルトのQSslConfiguration で指定されたCAリスト、および可能であればUnixやWindows上でオンデマンドで読み込まれるCA証明書を使用して自動的に検索されます。
QByteArray QSslCertificate::version() const
証明書のバージョン文字列を返します。
bool QSslCertificate::operator!=(const QSslCertificate &other) const
この証明書がother と一致しない場合は、true を返します。一致する場合は、false を返します。
QSslCertificate &QSslCertificate::operator=(const QSslCertificate &other)
other の内容をこの証明書にコピーし、2つの証明書を同一のものにします。
bool QSslCertificate::operator==(const QSslCertificate &other) const
この証明書がother と同一である場合は、true を返します。そうでない場合は、false を返します。
© 2026 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.