QSsl Namespace

QSsl 네임스페이스는 Qt Network 의 모든 SSL 클래스에 공통된 열거형을 선언합니다. 더 보기...

헤더: #include <QSsl>
CMake: find_package(Qt6 REQUIRED COMPONENTS Network)
target_link_libraries(mytarget PRIVATE Qt6::Network)
qmake: QT += network

유형

(since 6.0) enum class AlertLevel { Warning, Fatal, Unknown }
(since 6.0) enum class AlertType { CloseNotify, UnexpectedMessage, BadRecordMac, RecordOverflow, DecompressionFailure, …, UnknownAlertMessage }
enum AlternativeNameEntryType { EmailEntry, DnsEntry, IpAddressEntry }
enum EncodingFormat { Pem, Der }
(since 6.1) enum class ImplementedClass { Key, Certificate, Socket, DiffieHellman, EllipticCurve, …, DtlsCookie }
enum KeyAlgorithm { Rsa, Dsa, Ec, Dh, Opaque }
enum KeyType { PrivateKey, PublicKey }
enum SslOption { SslOptionDisableEmptyFragments, SslOptionDisableSessionTickets, SslOptionDisableCompression, SslOptionDisableServerNameIndication, SslOptionDisableLegacyRenegotiation, …, SslOptionDisableServerCipherPreference }
flags SslOptions
enum SslProtocol { TlsV1_0, TlsV1_0OrLater, TlsV1_1, TlsV1_1OrLater, TlsV1_2, …, SecureProtocols }
(since 6.1) enum class SupportedFeature { CertificateVerification, ClientSideAlpn, ServerSideAlpn, Ocsp, Psk, …, Alerts }

상세 설명

유형 문서

[since 6.0] enum class AlertLevel

알림 메시지의 수준을 설명합니다.

이 열거형은 전송되거나 수신된 알림 메시지의 수준을 설명합니다.

상수설명
QSslSocket::AlertLevel::Warning0치명적이지 않은 알림 메시지
QSslSocket::AlertLevel::Fatal1치명적인 경고 메시지로, 기본 백엔드에서 이러한 경고를 적절히 처리하고 연결을 닫습니다.
QSslSocket::AlertLevel::Unknown2심각도를 알 수 없는 경고 메시지.

이 열거형은 Qt 6.0에 도입되었습니다.

[since 6.0] enum class AlertType

알림 메시지에 포함될 수 있는 가능한 코드를 열거합니다.

가능한 값과 그 의미는 RFC 8446, 섹션 6을 참조하세요.

상수설명
QSslSocket::AlertType::CloseNotify0,
QSslSocket::AlertType::UnexpectedMessage10
QSslSocket::AlertType::BadRecordMac20
QSslSocket::AlertType::RecordOverflow22
QSslSocket::AlertType::DecompressionFailure30
QSslSocket::AlertType::HandshakeFailure40
QSslSocket::AlertType::NoCertificate41
QSslSocket::AlertType::BadCertificate42
QSslSocket::AlertType::UnsupportedCertificate43
QSslSocket::AlertType::CertificateRevoked44
QSslSocket::AlertType::CertificateExpired45
QSslSocket::AlertType::CertificateUnknown46
QSslSocket::AlertType::IllegalParameter47
QSslSocket::AlertType::UnknownCa48
QSslSocket::AlertType::AccessDenied49
QSslSocket::AlertType::DecodeError50
QSslSocket::AlertType::DecryptError51
QSslSocket::AlertType::ExportRestriction60
QSslSocket::AlertType::ProtocolVersion70
QSslSocket::AlertType::InsufficientSecurity71
QSslSocket::AlertType::InternalError80
QSslSocket::AlertType::InappropriateFallback86
QSslSocket::AlertType::UserCancelled90
QSslSocket::AlertType::NoRenegotiation100
QSslSocket::AlertType::MissingExtension109
QSslSocket::AlertType::UnsupportedExtension110
QSslSocket::AlertType::CertificateUnobtainable111
QSslSocket::AlertType::UnrecognizedName112
QSslSocket::AlertType::BadCertificateStatusResponse113
QSslSocket::AlertType::BadCertificateHashValue114
QSslSocket::AlertType::UnknownPskIdentity115
QSslSocket::AlertType::CertificateRequired116
QSslSocket::AlertType::NoApplicationProtocol120
QSslSocket::AlertType::UnknownAlertMessage255

이 열거형은 Qt 6.0에 도입되었습니다.

enum QSsl::AlternativeNameEntryType

QSslCertificate 에서 대체 이름 항목의 키 유형을 설명합니다.

Constant설명
QSsl::EmailEntry0이메일 항목; 이 항목은 인증서가 유효한 이메일 주소를 포함합니다.
QSsl::DnsEntry1DNS 호스트 이름 항목; 이 항목은 인증서가 유효한 호스트 이름 항목을 포함합니다. 이 항목은 와일드카드를 포함할 수 있습니다.
QSsl::IpAddressEntry2IP 주소 항목; 이 항목은 인증서가 유효한 IP 주소 항목을 포함하며, Qt 5.13에 도입되었습니다.

QSslCertificate::subjectAlternativeNames()도 참조하세요 .

enum QSsl::EncodingFormat

인증서 및 키에 대해 지원되는 인코딩 형식을 설명합니다.

상수설명
QSsl::Pem0PEM 형식입니다.
QSsl::Der1DER 형식입니다.

[since 6.1] enum class ImplementedClass

TLS 백엔드에서 구현하는 클래스를 열거합니다.

QtNetwork 에서 일부 클래스는 백엔드 전용 구현을 가지고 있으므로 구현되지 않은 상태로 둘 수 있습니다. 이 열거형의 열거자는 백엔드에서 작동하는 구현이 있는 클래스를 나타냅니다.

Constant설명
QSslSocket::ImplementedClass::Key0클래스 QSslKey.
QSslSocket::ImplementedClass::Certificate1클래스 QSslCertificate.
QSslSocket::ImplementedClass::Socket2클래스 QSslSocket.
QSslSocket::ImplementedClass::DiffieHellman3클래스 QSslDiffieHellmanParameters.
QSslSocket::ImplementedClass::EllipticCurve4Class QSslEllipticCurve.
QSslSocket::ImplementedClass::Dtls5Class QDtls.
QSslSocket::ImplementedClass::DtlsCookie6클래스 QDtlsClientVerifier.

이 열거형은 Qt 6.1에서 도입되었습니다.

enum QSsl::KeyAlgorithm

QSslKey 에서 지원하는 다양한 주요 알고리즘에 대해 설명합니다.

Constant설명
QSsl::Rsa1RSA 알고리즘입니다.
QSsl::Dsa2DSA 알고리즘입니다.
QSsl::Ec3타원 곡선 알고리즘입니다.
QSsl::Dh4디피-헬만 알고리즘.
QSsl::Opaque0QSslKey 에서 '블랙박스'로 취급해야 하는 키입니다.

불투명 키 기능을 사용하면 응용 프로그램에서 현재 Qt가 기본적으로 제공하지 않는 PKCS#11과 같은 기능에 대한 지원을 추가할 수 있습니다.

enum QSsl::KeyType

QSslKey 에서 지원하는 두 가지 유형의 키에 대해 설명합니다.

Constant설명
QSsl::PrivateKey0개인 키입니다.
QSsl::PublicKey1공개 키입니다.

열거형 QSsl::SslOption
플래그 QSsl::SslOptions

SSL 동작의 세부 사항을 제어하는 데 사용할 수 있는 옵션을 설명합니다. 이러한 옵션은 일반적으로 버그가 있는 서버를 해결하기 위해 기능을 해제하는 데 사용됩니다.

상수설명
QSsl::SslOptionDisableEmptyFragments0x01블록 암호를 사용할 때 데이터에 빈 조각을 삽입하지 않도록 설정합니다. 활성화하면 일부 공격(예: BEAST 공격)을 방지할 수 있지만 일부 서버에서는 호환되지 않습니다.
QSsl::SslOptionDisableSessionTickets0x02SSL 세션 티켓 확장을 비활성화합니다. 이 옵션을 사용하면 연결 설정 속도가 느려질 수 있지만 일부 서버는 이 확장 기능과 호환되지 않습니다.
QSsl::SslOptionDisableCompression0x04SSL 압축 확장을 비활성화합니다. 사용 설정하면 SSL을 통해 전달되는 데이터를 압축할 수 있지만 일부 서버는 이 확장과 호환되지 않습니다.
QSsl::SslOptionDisableServerNameIndication0x08SSL 서버 이름 표시 확장을 비활성화합니다. 활성화하면 서버에 액세스 중인 가상 호스트가 올바른 인증서로 응답할 수 있도록 서버에 알려줍니다.
QSsl::SslOptionDisableLegacyRenegotiation0x10연결 매개변수 재협상을 위한 기존의 안전하지 않은 메커니즘을 비활성화합니다. 이 옵션을 활성화하면 레거시 서버에 대한 연결을 허용할 수 있지만 공격자가 SSL 세션에 일반 텍스트를 삽입할 수 있는 가능성이 생깁니다.
QSsl::SslOptionDisableSessionSharing0x20세션 ID 핸드셰이크 속성을 통한 SSL 세션 공유를 비활성화합니다.
QSsl::SslOptionDisableSessionPersistence0x40QSslConfiguration::sessionTicket()에서 반환된 ASN.1 형식으로 SSL 세션을 저장하지 않도록 설정합니다. 이 기능을 사용 설정하면 사용된 세션 티켓당 약 1K의 메모리 오버헤드가 추가됩니다.
QSsl::SslOptionDisableServerCipherPreference0x80클라이언트가 전송한 순서 암호가 아닌 서버 기본 설정에 따라 선택한 암호를 선택하지 않도록 설정합니다. 이 옵션은 서버 소켓에만 관련되며 OpenSSL 백엔드에서만 적용됩니다.

많은 수의 서버에서 문제가 발생할 수 있으므로 기본적으로 SslOptionDisableEmptyFragments가 켜져 있습니다. 보안 위험을 초래하므로 SslOptionDisableLegacyRenegotiation도 켜져 있습니다. 범죄에 의해 공개되는 공격을 방지하기 위해 SslOptionDisableCompression이 켜져 있습니다. 메모리 사용량을 최적화하기 위해 SslOptionDisableSessionPersistence가 켜져 있습니다. 다른 옵션은 꺼져 있습니다.

참고: 위 옵션의 사용 가능 여부는 사용 중인 SSL 백엔드 버전에 따라 다릅니다.

SslOptions 유형은 QFlags<SslOption>에 대한 typedef입니다. SslOption 값의 OR 조합을 저장합니다.

enum QSsl::SslProtocol

암호의 프로토콜을 설명합니다.

상수설명
QSsl::TlsV1_00TLSv1.0
QSsl::TlsV1_0OrLater5TLSv1.0 이상 버전입니다.
QSsl::TlsV1_11TLSv1.1.
QSsl::TlsV1_1OrLater6TLSv1.1 이상 버전.
QSsl::TlsV1_22TLSv1.2.
QSsl::TlsV1_2OrLater7TLSv1.2 이상 버전.
QSsl::DtlsV1_08DTLSv1.0
QSsl::DtlsV1_0OrLater9DTLSv1.0 이상 버전.
QSsl::DtlsV1_210DTLSv1.2
QSsl::DtlsV1_2OrLater11DTLSv1.2 이상 버전.
QSsl::TlsV1_312TLSv1.3(Qt 5.12 이후)
QSsl::TlsV1_3OrLater13TLSv1.3 이상 버전. (Qt 5.12 이후)
QSsl::UnknownProtocol-1암호의 프로토콜을 확인할 수 없습니다.
QSsl::AnyProtocol3지원되는 모든 프로토콜. 이 값은 QSslSocket 에서만 사용됩니다.
QSsl::SecureProtocols4기본 옵션으로, 안전한 것으로 알려진 프로토콜을 사용합니다.

[since 6.1] enum class SupportedFeature

TLS 백엔드가 지원하는 가능한 기능을 열거합니다.

QtNetwork 에서 TLS 관련 클래스에는 일부 백엔드에서 구현되지 않은 채로 남겨질 수 있는 공용 API가 있습니다(예: SecureTransport 백엔드는 서버 측 ALPN을 지원하지 않음). SupportedFeature 열거형의 열거자는 특정 기능이 지원됨을 나타냅니다.

Constant설명
QSslSocket::SupportedFeature::CertificateVerification0QSslCertificate::verify()가 백엔드에서 구현되었음을 나타냅니다.
QSslSocket::SupportedFeature::ClientSideAlpn1클라이언트 측 ALPN(애플리케이션 계층 프로토콜 협상).
QSslSocket::SupportedFeature::ServerSideAlpn2서버 측 ALPN.
QSslSocket::SupportedFeature::Ocsp3OCSP 스테이플링(온라인 인증서 상태 프로토콜).
QSslSocket::SupportedFeature::Psk4사전 공유 키.
QSslSocket::SupportedFeature::SessionTicket5세션 티켓.
QSslSocket::SupportedFeature::Alerts6주고받은 경고 메시지에 대한 정보.

이 열거형은 Qt 6.1에 도입되었습니다.

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