QSslCertificate Class

QSslCertificate クラスは、X509 証明書の便利な API を提供します。詳細...

ヘッダ #include <QSslCertificate>
CMake: find_package(Qt6 REQUIRED COMPONENTS Network)
target_link_libraries(mytarget PRIVATE Qt6::Network)
qmake: QT += network

注意:このクラスの関数はすべてリエントラントです。

パブリック型

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)
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)エンコードされたバンドルから証明書をロードすることもできます。

isNull() を呼び出すと、証明書が NULL かどうかを確認できます。デフォルトでは、QSslCertificate はヌル証明書を構築します。NULL 証明書は無効ですが、無効な証明書が必ずしも NULL であるとは限りません。証明書の内容をすべてリセットしたい場合は、clear() を呼び出します。

証明書をロードした後は、version()、serialNumber()、issuerInfo()、subjectInfo() など、多数のアクセス関数のいずれかを呼び出すことで、証明書、そのサブジェクト、発行者に関する情報を調べることができます。effectiveDate() およびexpiryDate() を呼び出すと、証明書の有効開始日および有効期限を確認できます。publicKey() 関数は、証明書のサブジェクトの公開鍵をQSslKey として返します。issuerInfo() またはsubjectInfo() を呼び出すと、証明書の発行者とそのサブジェクトに関する詳細情報を取得できます。

内部的には、QSslCertificate は X509 構造体として格納されています。handle() を呼び出すことで、このハンドルにアクセスすることができるが、結果はポータブルでない可能性が高い。

QSslSocketQSslKeyQSslCipherQSslErrorも参照のこと

メンバ型ドキュメント

enum class QSslCertificate::PatternSyntax

パターンの意味を解釈するために使われる構文。

定数説明
QSslCertificate::PatternSyntax::RegularExpression0リッチなPerlライクなパターンマッチング構文。
QSslCertificate::PatternSyntax::Wildcard1これは、シェル(コマンド・インタプリタ)が "ファイル・グロビング(file globbing) "のために使用する構文に似た、シンプルなパターンマッチング構文を提供します。QRegularExpression::fromWildcard()を参照。
QSslCertificate::PatternSyntax::FixedString2パターンは固定文字列です。これは、すべてのメタキャラクタを escape() でエスケープした文字列に対して RegularExpression パターンを使用するのと同じです。これがデフォルトです。

enum QSslCertificate::SubjectInfo

証明書の発行者やサブジェクトに関する情報を取得するために、QSslCertificate::issuerInfo() やQSslCertificate::subjectInfo() に渡す鍵について記述する。

定数説明
QSslCertificate::Organization0「O" 組織名。
QSslCertificate::CommonName1「ほとんどの場合、これはホスト名を格納するために使用される。
QSslCertificate::LocalityName2"L" 地域。
QSslCertificate::OrganizationalUnitName3"OU" 組織単位名。
QSslCertificate::CountryName4「C" 国。
QSslCertificate::StateOrProvinceName5"ST" 州。
QSslCertificate::DistinguishedNameQualifier6識別名修飾子
QSslCertificate::SerialNumber7証明書のシリアル番号
QSslCertificate::EmailAddress8証明書に関連付けられた電子メールアドレス

メンバー関数ドキュメント

[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 の同一コピーを作成する。

[noexcept, 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

証明書が有効になる日時を返します。ヌル証明書の場合は空のQDateTime を返します。

expiryDate()も参照

QDateTime QSslCertificate::expiryDate() const

証明書の有効期限を返します。ヌル証明書の場合は空のQDateTime を返します。

effectiveDate()も参照

QList<QSslCertificateExtension> QSslCertificate::extensions() const

この証明書の X509 拡張子を含むリストを返します。

[static] QList<QSslCertificate> QSslCertificate::fromData(const QByteArray &data, QSsl::EncodingFormat format = QSsl::Pem)

指定されたformat でエンコードされているdata 内のすべての証明書を検索して解析し、証明書のリストとして返す。

fromDevice()も参照のこと

[static] QList<QSslCertificate> QSslCertificate::fromDevice(QIODevice *device, QSsl::EncodingFormat format = QSsl::Pem)

指定されたformat でエンコードされているdevice 内のすべての証明書を検索して解析し、証明書のリストとして返す。

fromData()も参照のこと

[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::PemQSslCertificate::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 の情報がない場合は空リストを返す。ひとつの属性に複数のエントリがあってもかまいません。

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 の情報がない場合は空リストを返す。ひとつの属性に複数のエントリを指定することもできます。

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 を返す。

© 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.