このページでは

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

注:このクラスのすべての関数は再入可能です。

パブリック型

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::RegularExpression0Perl 風の豊富なパターンマッチング構文。
QSslCertificate::PatternSyntax::Wildcard1これは、シェル(コマンドインタプリタ)で「ファイルグロブ」に使用されるものと同様の、シンプルなパターンマッチング構文を提供します。QRegularExpression::fromWildcard() を参照してください。
QSslCertificate::PatternSyntax::FixedString2パターンは固定の文字列です。これは、escape() を使用してすべてのメタ文字をエスケープした文字列に対して RegularExpression パターンを適用することと同等です。これがデフォルトの設定です。

enum QSslCertificate::SubjectInfo

QSslCertificate::issuerInfo() またはQSslCertificate::subjectInfo() に渡すことで、証明書の発行者またはサブジェクトに関する情報を取得できるキーについて説明します。

定数値説明
QSslCertificate::Organization0"O" 組織名。
QSslCertificate::CommonName1"CN" 共通名。ほとんどの場合、ホスト名を格納するために使用されます。
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 の完全なコピーを作成します。

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