QSslCertificate Class
QSslCertificate 클래스는 X509 인증서를 다루기 위한 편리한 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 인증서를 저장하며, 일반적으로 로컬 호스트, 원격으로 연결된 피어 또는 신뢰할 수 있는 제3자 인증 기관의 신원을 확인하고 관련 정보를 저장하는 데 사용됩니다.
QSslCertificate를 생성하는 방법에는 여러 가지가 있습니다. 가장 일반적인 방법은 QSslCertificate 객체를 반환하는 ` QSslSocket::peerCertificate()`를 호출하거나, 객체 목록을 반환하는 ` QSslSocket::peerCertificateChain()`를 호출하는 것입니다. 또한 일반적으로 하나 이상의 로컬 파일이나 Qt 리소스에 저장된 DER(바이너리) 또는 PEM(Base64) 인코딩 번들에서 인증서를 불러올 수도 있습니다.
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 | "O" 조직의 이름입니다. "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()
이 인증서의 내용을 지워, 해당 인증서를 null 인증서로 만듭니다.
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 에 명시된 대로 하나 이상의 파일과 일치하는 패턴이어야 합니다.
예시:
const auto certs = QSslCertificate::fromPath("C:/ssl/certificate.*.pem",
QSsl::Pem, QSslCertificate::Wildcard);
for (const QSslCertificate&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
이 인증서가 null 인증서(즉, 내용이 없는 인증서)인 경우 ` true `를 반환하고, 그렇지 않은 경우 ` false`를 반환합니다.
기본적으로 QSslCertificate 은 null 인증서를 생성합니다.
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 ` 매개변수를 통해 전달됩니다. 목록의 첫 번째 인증서는 검증 대상 체인의 최하위(leaf) 인증서여야 합니다. ` hostName `가 지정된 경우, 해당 인증서가 지정된 호스트 이름에 대해 유효한지 여부도 함께 확인됩니다.
루트(CA) 인증서는 검증 대상 목록에 포함되어서는 안 됩니다. 루트 인증서는 기본 QSslConfiguration 에 지정된 CA 목록을 통해 자동으로 조회되며, 또한 가능한 경우 유닉스 및 윈도우에서 필요 시 동적으로 로드되는 CA 인증서를 통해 추가로 조회됩니다.
QByteArray QSslCertificate::version() const
인증서의 버전 문자열을 반환합니다.
bool QSslCertificate::operator!=(const QSslCertificate &other) const
이 인증서가 other 과 일치하지 않으면 true 를 반환하고, 일치하는 경우 false 를 반환합니다.
QSslCertificate &QSslCertificate::operator=(const QSslCertificate &other)
other 의 내용을 이 인증서로 복사하여 두 인증서를 동일하게 만듭니다.
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.