Класс QSslConfiguration
Класс QSslConfiguration хранит конфигурацию и состояние соединения SSL. Подробнее...
| Заголовок: | #include <QSslConfiguration> |
| qmake: | QT += network |
| С момента: | Qt 4.4 |
Примечание: Все функции в этом классе являются перевходными.
Типы публичного доступа
| перечисление | NextProtocolNegotiationStatus { NextProtocolNegotiationNone, NextProtocolNegotiationNegotiated, NextProtocolNegotiationUnsupported } |
Публичные функции
| QSslConfiguration() | |
| QSslConfiguration(const QSslConfiguration &other) | |
| ~QSslConfiguration() | |
| QList<QByteArray> | allowedNextProtocols() const |
| QMap<QByteArray, QVariant> | backendConfiguration() const |
| QList<QSslCertificate> | caCertificates() const |
| QList<QSslCipher> | ciphers() const |
| QSslDiffieHellmanParameters | diffieHellmanParameters() const |
| QVector<QSslEllipticCurve> | ellipticCurves() const |
| QSslKey | ephemeralServerKey() const |
| bool | isNull() const |
| QSslCertificate | localCertificate() const |
| QList<QSslCertificate> | localCertificateChain() const |
| QByteArray | nextNegotiatedProtocol() const |
| QSslConfiguration::NextProtocolNegotiationStatus | nextProtocolNegotiationStatus() const |
| QSslCertificate | peerCertificate() const |
| QList<QSslCertificate> | peerCertificateChain() const |
| int | peerVerifyDepth() const |
| QSslSocket::PeerVerifyMode | peerVerifyMode() const |
| QByteArray | preSharedKeyIdentityHint() const |
| QSslKey | privateKey() const |
| QSsl::SslProtocol | protocol() const |
| QSslCipher | sessionCipher() const |
| QSsl::SslProtocol | sessionProtocol() const |
| QByteArray | sessionTicket() const |
| int | sessionTicketLifeTimeHint() const |
| void | setAllowedNextProtocols(QList<QByteArray> protocols) |
| void | setBackendConfiguration(const QMap<QByteArray, QVariant> &backendConfiguration = ...) |
| void | setBackendConfigurationOption(const QByteArray &name, const QVariant &value) |
| void | setCaCertificates(const QList<QSslCertificate> &certificates) |
| void | setCiphers(const QList<QSslCipher> &ciphers) |
| void | setDiffieHellmanParameters(const QSslDiffieHellmanParameters &dhparams) |
| void | setEllipticCurves(const QVector<QSslEllipticCurve> &curves) |
| void | setLocalCertificate(const QSslCertificate &certificate) |
| void | setLocalCertificateChain(const QList<QSslCertificate> &localChain) |
| void | setPeerVerifyDepth(int depth) |
| void | setPeerVerifyMode(QSslSocket::PeerVerifyMode mode) |
| void | setPreSharedKeyIdentityHint(const QByteArray &hint) |
| void | setPrivateKey(const QSslKey &key) |
| void | setProtocol(QSsl::SslProtocol protocol) |
| void | setSessionTicket(const QByteArray &sessionTicket) |
| void | setSslOption(QSsl::SslOption option, bool on) |
| void | swap(QSslConfiguration &other) |
| bool | testSslOption(QSsl::SslOption option) const |
| bool | operator!=(const QSslConfiguration &other) const |
| QSslConfiguration & | operator=(QSslConfiguration &&other) |
| QSslConfiguration & | operator=(const QSslConfiguration &other) |
| bool | operator==(const QSslConfiguration &other) const |
Статические публичные члены
| const char [] | NextProtocolHttp1_1 |
| const char [] | NextProtocolSpdy3_0 |
| QSslConfiguration | defaultConfiguration() |
| void | setDefaultConfiguration(const QSslConfiguration &configuration) |
| QList<QSslCipher> | supportedCiphers() |
| QVector<QSslEllipticCurve> | supportedEllipticCurves() |
| QList<QSslCertificate> | systemCaCertificates() |
Подробное описание
Класс QSslConfiguration хранит конфигурацию и состояние соединения SSL.
QSslConfiguration используется классами Qt для сетевого доступа для передачи информации об открытом соединении SSL и позволяет приложению управлять определёнными функциями этого соединения.
Настройки, которые в данный момент поддерживает QSslConfiguration:
- Используемый протокол SSL/TLS
- Представляемый сертификат клиенту во время подключения и соответствующий ему закрытый ключ
- Допустимые шифры для шифрования соединения
- Список сертификатов Удостоверяющих центров, используемых для проверки сертификата клиента
Эти настройки применяются только во время рукопожатия соединения. Установка их после установления соединения не оказывает никакого эффекта.
Состояние, которое поддерживает QSslConfiguration:
- Сертификат, представленный клиентом во время рукопожатия, вместе с цепочкой, ведущей к сертификату Удостоверяющего центра
- Шифр, используемый для шифрования этого сеанса
Состояние может быть получено только после начала SSL соединения, но необязательно до его завершения. Некоторые настройки могут меняться в процессе SSL соединения без необходимости его перезапуска (например, шифр может меняться со временем).
Состояние в объектах QSslConfiguration изменить нельзя.
QSslConfiguration может использоваться с QSslSocket и API сетевого доступа.
Обратите внимание, что изменение настроек в QSslConfiguration недостаточно для изменения настроек в связанном SSL соединении. Вы должны вызвать setSslConfiguration на изменённом объекте QSslConfiguration, чтобы добиться этого. Следующий пример демонстрирует, как изменить протокол на TLSv1_0 в объекте QSslSocket:
QSslConfiguration config = sslSocket.sslConfiguration(); config.setProtocol(QSsl::TlsV1_0); sslSocket.setSslConfiguration(config);
См. также QSsl::SslProtocol, QSslCertificate, QSslCipher, QSslKey, QSslSocket, QNetworkAccessManager, QSslSocket::sslConfiguration() и QSslSocket::setSslConfiguration().
Документация по типам членов
enum QSslConfiguration::NextProtocolNegotiationStatus
Описывает состояние следующего протокола переговоров (NPN) или переговоров протокола прикладного уровня (ALPN).
| Постоянная | Значение | Описание |
|---|---|---|
QSslConfiguration::NextProtocolNegotiationNone |
0 |
Протокол приложения ещё не был согласован (ещё). |
QSslConfiguration::NextProtocolNegotiationNegotiated |
1 |
Следующий протокол был согласован (см. nextNegotiatedProtocol()). |
QSslConfiguration::NextProtocolNegotiationUnsupported |
2 |
Клиент и сервер не смогли договориться о общем следующем прикладном протоколе. |
Документация по функциям членов
QSslConfiguration::QSslConfiguration()
Конструирует пустую конфигурацию SSL. Эта конфигурация не содержит действительных настроек, и состояние будет пустым. isNull() вернёт true после вызова этого конструктора.
После вызова любых методов-установщиков isNull() вернёт false.
QSslConfiguration::QSslConfiguration(const QSslConfiguration &other)
Копирует конфигурацию и состояние other. Если other равно null, этот объект тоже будет null.
QSslConfiguration::~QSslConfiguration()
Освобождает любые ресурсы, удерживаемые QSslConfiguration.
QList<QByteArray> QSslConfiguration::allowedNextProtocols() const
Эта функция возвращает разрешённые протоколы, которые должны быть согласованы с сервером с помощью расширения TLS "Следующий протокол переговоров (NPN)" или "Переговоры протокола прикладного уровня (ALPN)", как установлено в setAllowedNextProtocols().
Эта функция была представлена в Qt 5.3.
См. также nextNegotiatedProtocol(), nextProtocolNegotiationStatus(), setAllowedNextProtocols(), QSslConfiguration::NextProtocolSpdy3_0 и QSslConfiguration::NextProtocolHttp1_1.
QMap<QByteArray, QVariant> QSslConfiguration::backendConfiguration() const
Возвращает конфигурацию, специфичную для бэкенда.
Только опции, установленные с помощью setBackendConfigurationOption() или setBackendConfiguration(), будут возвращены. Внутренняя стандартная конфигурация бэкенда не сообщается.
Эта функция была представлена в Qt 5.11.
См. также setBackendConfigurationOption() и setBackendConfiguration().
QList<QSslCertificate> QSslConfiguration::caCertificates() const
Возвращает базу данных сертификатов Удостоверяющих центров этого соединения. База данных сертификатов Удостоверяющих центров используется сокетом во время фазы рукопожатия для проверки сертификата клиента. Она может быть изменена до рукопожатия с помощью setCaCertificates(), или с помощью QSslSocket’s addCaCertificate() и addCaCertificates().
См. также setCaCertificates().
QList<QSslCipher> QSslConfiguration::ciphers() const
Возвращает текущий набор криптографических наборов шифров этого соединения. Этот список используется во время фазы рукопожатия для выбора шифра сеанса. Возвращаемый список шифров упорядочен по убыванию предпочтения. (т.е., первый шифр в списке является предпочтительнее). Шифр сеанса будет первым в списке, который также поддерживается клиентом.
По умолчанию, фаза рукопожатия может выбрать любой из шифров, поддерживаемых SSL библиотеками этой системы, которые могут различаться в зависимости от системы. Список шифров, поддерживаемых SSL библиотеками этой системы, возвращается функцией QSslSocket::supportedCiphers(). Вы можете ограничить список шифров, используемых для выбора шифра сеанса для этого сокета, вызвав setCiphers() с подмножеством поддерживаемых шифров. Вы можете вернуться к использованию всего набора, вызвав setCiphers() со списком, возвращаемым QSslSocket::supportedCiphers().
См. также setCiphers() и QSslSocket::supportedCiphers().
QSslConfiguration QSslConfiguration::defaultConfiguration()
Возвращает конфигурацию SSL по умолчанию, которая должна использоваться в новых подключениях SSL.
Конфигурация SSL по умолчанию включает:
- нет локального сертификата и нет закрытого ключа
- протокол SecureProtocols
- список сертификатов Удостоверяющих центров по умолчанию системы
- список шифров равный списку SSL шифров, поддерживаемых SSL библиотеками системы, которые имеют 128 бит или более
См. также QSslSocket::supportedCiphers() и setDefaultConfiguration().
QSslDiffieHellmanParameters QSslConfiguration::diffieHellmanParameters() const
Извлекает текущий набор параметров Diffie-Hellman.
Если параметры Diffie-Hellman не были установлены, объект QSslConfiguration использует по умолчанию 1024-битовую группу MODP из RFC 2409.
Эта функция была представлена в Qt 5.8.
См. также setDiffieHellmanParameters().
QVector<QSslEllipticCurve> QSslConfiguration::ellipticCurves() const
Возвращает текущий список эллиптических кривых для этого подключения. Этот список используется на стадии установления соединения для выбора эллиптической кривой (при использовании шифра с эллиптической кривой). Возвращаемый список кривых упорядочен по убыванию приоритета (т.е., первая кривая в списке является наиболее предпочтительной).
По умолчанию, на стадии установления соединения может быть выбрана любая кривая, поддерживаемая SSL-библиотеками этой системы, которая может различаться в зависимости от системы. Список кривых, поддерживаемых SSL-библиотеками этой системы, возвращается функцией QSslSocket::supportedEllipticCurves().
Вы можете ограничить список кривых, используемых для выбора шифра сессии для данного сокета, вызвав setEllipticCurves() с подмножеством поддерживаемых шифров. Вы можете вернуться к использованию всего набора, вызвав setEllipticCurves() со списком, возвращённым QSslSocket::supportedEllipticCurves().
Эта функция была добавлена в Qt 5.5.
См. также setEllipticCurves.
QSslKey QSslConfiguration::ephemeralServerKey() const
Возвращает временный открытый ключ сервера, используемый для алгоритмов шифрования с защитой от подмены, например, DHE-RSA-AES128-SHA.
Временный ключ доступен только при работе в режиме клиента, т.е. QSslSocket::SslClientMode. При работе в серверном режиме или использовании алгоритма шифрования без защиты от подмены возвращается нулевой ключ. Временный открытый ключ сервера будет установлен перед выводом сигнала encrypted().
Эта функция была добавлена в Qt 5.7.
bool QSslConfiguration::isNull() const
Возвращает true если это объект QSslConfiguration со значением NULL.
Объект QSslConfiguration имеет значение NULL, если он был создан по умолчанию и не были вызваны методы установки свойств.
См. также setProtocol(), setLocalCertificate(), setPrivateKey(), setCiphers() и setCaCertificates().
QSslCertificate QSslConfiguration::localCertificate() const
Возвращает сертификат, который будет представлен партнёру во время процесса установления SSL-соединения.
См. также setLocalCertificate().
QList<QSslCertificate> QSslConfiguration::localCertificateChain() const
Возвращает цепочку сертификатов, которая будет представлена партнёру во время процесса установления SSL-соединения.
Эта функция была добавлена в Qt 5.1.
См. также setLocalCertificateChain() и localCertificate().
QByteArray QSslConfiguration::nextNegotiatedProtocol() const
Эта функция возвращает протокол, согласованный с сервером, если расширение TLS для следующего протокола (NPN) или протокола прикладного уровня (ALPN) было включено. Для включения расширения NPN/ALPN необходимо явно вызвать setAllowedNextProtocols() перед подключением к серверу.
Если протокол не удалось согласовать или расширение не было включено, эта функция возвращает QByteArray со значением NULL.
Эта функция была добавлена в Qt 5.3.
См. также setAllowedNextProtocols() и nextProtocolNegotiationStatus().
QSslConfiguration::NextProtocolNegotiationStatus QSslConfiguration::nextProtocolNegotiationStatus() const
Эта функция возвращает состояние следующего протокола (NPN) или протокола прикладного уровня (ALPN). Если функция не была включена с помощью setAllowedNextProtocols(), эта функция возвращает NextProtocolNegotiationNone. Состояние будет установлено перед выводом сигнала encrypted().
Эта функция была добавлена в Qt 5.3.
См. также setAllowedNextProtocols(), allowedNextProtocols(), nextNegotiatedProtocol() и QSslConfiguration::NextProtocolNegotiationStatus.
QSslCertificate QSslConfiguration::peerCertificate() const
Возвращает цифровой сертификат партнера (т.е., непосредственный сертификат хоста, к которому вы подключены), или нулевой сертификат, если партнер не предоставил сертификат.
Сертификат партнера проверяется автоматически во время процесса установления соединения, поэтому эта функция обычно используется для получения сертификата для отображения или диагностики соединения. Он содержит информацию о партнёре, включая имя хоста, издателя сертификата и открытый ключ партнёра.
Поскольку сертификат партнёра устанавливается во время процесса установления соединения, доступ к сертификату партнёра безопасен из слота, подключённого к сигналу QSslSocket::sslErrors(), QNetworkReply::sslErrors() или сигналу QSslSocket::encrypted().
Возвращение нулевого сертификата может означать, что процесс SSL-соединения завершился неудачей, или что у хоста, к которому вы подключены, нет сертификата, или что соединения нет.
Если вы хотите проверить полную цепочку сертификатов партнёра, используйте peerCertificateChain() для получения всех сертификатов сразу.
См. также peerCertificateChain(), QSslSocket::sslErrors(), QSslSocket::ignoreSslErrors(), QNetworkReply::sslErrors() и QNetworkReply::ignoreSslErrors().
QList<QSslCertificate> QSslConfiguration::peerCertificateChain() const
Возвращает цепочку цифровых сертификатов партнёра, начиная с непосредственного сертификата партнёра и заканчивая сертификатом удостоверяющего центра.
Сертификаты партнёра проверяются автоматически во время процесса установления соединения. Эта функция обычно используется для получения сертификатов для отображения или для диагностики соединения. Сертификаты содержат информацию о партнёре и издателях сертификатов, включая имя хоста, имена издателей и открытые ключи издателей.
Поскольку сертификат партнёра устанавливается во время процесса установления соединения, доступ к сертификату партнёра безопасен из слота, подключённого к сигналу QSslSocket::sslErrors(), QNetworkReply::sslErrors() или сигналу QSslSocket::encrypted().
Возвращение пустого списка может означать, что процесс SSL-соединения завершился неудачей, или что у хоста, к которому вы подключены, нет сертификата, или что соединения нет.
Если вы хотите получить только непосредственный сертификат партнёра, используйте peerCertificate().
См. также peerCertificate(), QSslSocket::sslErrors(), QSslSocket::ignoreSslErrors(), QNetworkReply::sslErrors() и QNetworkReply::ignoreSslErrors().
int QSslConfiguration::peerVerifyDepth() const
Возвращает максимальное количество сертификатов в цепочке сертификатов партнёра, которые будут проверены во время процесса установления SSL-соединения, или 0 (по умолчанию), если максимальная глубина не была установлена, что указывает на проверку всей цепочки сертификатов.
Сертификаты проверяются в порядке выдачи, начиная с собственного сертификата партнёра, затем сертификата его издателя и так далее.
См. также setPeerVerifyDepth() и peerVerifyMode().
QSslSocket::PeerVerifyMode QSslConfiguration::peerVerifyMode() const
Возвращает режим проверки. Этот режим определяет, должен ли QSslSocket запрашивать сертификат у партнёра (т.е., клиент запрашивает сертификат у сервера, или сервер запрашивает сертификат у клиента), и должен ли он требовать, чтобы этот сертификат был действительным.
Режим по умолчанию — AutoVerifyPeer, который сообщает QSslSocket использовать VerifyPeer для клиентов и QueryPeer для серверов.
См. также setPeerVerifyMode().
QByteArray QSslConfiguration::preSharedKeyIdentityHint() const
Возвращает подсказку идентификации.
Эта функция была добавлена в Qt 5.8.
См. также setPreSharedKeyIdentityHint().
QSslKey QSslConfiguration::privateKey() const
Возвращает SSL-ключ, назначенный этому подключению, или нулевой ключ, если ключ ещё не назначен.
См. также setPrivateKey() и localCertificate().
QSsl::SslProtocol QSslConfiguration::protocol() const
Возвращает настройку протокола для этой SSL-конфигурации.
См. также setProtocol().
QSslCipher QSslConfiguration::sessionCipher() const
Возвращает криптографический шифр сокета, или null-шифр, если соединение не зашифровано. Шифр сокета для сессии устанавливается во время фазы рукопожатия. Шифр используется для шифрования и дешифрования данных, передаваемых через сокет.
Инфраструктура SSL также предоставляет функции для установки упорядоченного списка шифров, из которого фаза рукопожатия в конечном итоге выберет сессионный шифр. Этот упорядоченный список должен быть создан до начала фазы рукопожатия.
См. также ciphers(), setCiphers() и QSslSocket::supportedCiphers().
QSsl::SslProtocol QSslConfiguration::sessionProtocol() const
Возвращает протокол SSL/TLS сокета или UnknownProtocol, если соединение не зашифровано. Протокол сокета для сессии устанавливается во время фазы рукопожатия.
Эта функция была добавлена в Qt 5.4.
См. также protocol() и setProtocol().
QByteArray QSslConfiguration::sessionTicket() const
Если QSsl::SslOptionDisableSessionPersistence был выключен, эта функция возвращает билет сессии, используемый в рукопожатии SSL в формате ASN.1, пригодном, например, для сохранения на диске. Если билет сессии не использовался или QSsl::SslOptionDisableSessionPersistence не был выключен, эта функция возвращает пустой QByteArray.
Примечание: При сохранении билета сессии на диск или аналогично, будьте осторожны, чтобы не раскрыть сессию потенциальному злоумышленнику, так как знание сессии позволяет перехватывать данные, зашифрованные с параметрами сессии.
Эта функция была добавлена в Qt 5.2.
См. также setSessionTicket(), QSsl::SslOptionDisableSessionPersistence и setSslOption().
int QSslConfiguration::sessionTicketLifeTimeHint() const
Если QSsl::SslOptionDisableSessionPersistence был выключен, эта функция возвращает указание о времени жизни билета сессии, отправленное сервером (которое может быть 0). Если сервер не отправил билет сессии (например, при возобновлении сессии или если сервер его не поддерживает) или QSsl::SslOptionDisableSessionPersistence не был выключен, функция возвращает -1.
Эта функция была добавлена в Qt 5.2.
См. также sessionTicket(), QSsl::SslOptionDisableSessionPersistence и setSslOption().
void QSslConfiguration::setAllowedNextProtocols(QList<QByteArray> protocols)
Эта функция устанавливает разрешённые protocols для согласования с сервером через расширение TLS NPN (Next Protocol Negotiation) или ALPN (Application-Layer Protocol Negotiation); каждый элемент в protocols должен определять один разрешённый протокол. Функция должна быть вызвана явно перед подключением для отправки расширения NPN/ALPN в рукопожатии SSL. Успех согласования можно проверить с помощью nextProtocolNegotiationStatus().
Эта функция была добавлена в Qt 5.3.
См. также nextNegotiatedProtocol(), nextProtocolNegotiationStatus(), allowedNextProtocols(), QSslConfiguration::NextProtocolSpdy3_0 и QSslConfiguration::NextProtocolHttp1_1.
void QSslConfiguration::setBackendConfiguration(const QMap<QByteArray, QVariant> &backendConfiguration = ...)
Устанавливает или очищает конфигурацию, специфичную для бэкенда.
Без параметра backendConfiguration эта функция очистит конфигурацию, специфичную для бэкенда. Дополнительная информация о поддерживаемых опциях доступна в документации к setBackendConfigurationOption().
Эта функция была добавлена в Qt 5.11.
См. также backendConfiguration() и setBackendConfigurationOption().
void QSslConfiguration::setBackendConfigurationOption(const QByteArray &name, const QVariant &value)
Устанавливает значение опции name в конфигурации бэкенда на value.
Опции, поддерживаемые бэкендом OpenSSL (>= 1.0.2), доступны в документации поддерживаемых команд конфигурационного файла. Ожидаемый тип для параметра value — QByteArray для всех опций. Примеры показывают, как использовать некоторые из опций.
Примечание: Конфигурация, специфичная для бэкенда, будет применена после общей конфигурации. Использование конфигурации, специфичной для бэкенда, для установки общей конфигурации опции снова перезапишет общую конфигурацию опции.
Эта функция была добавлена в Qt 5.11.
См. также backendConfiguration() и setBackendConfiguration().
void QSslConfiguration::setCaCertificates(const QList<QSslCertificate> &certificates)
Устанавливает базу данных сертификатов CA сокета на certificates. База данных сертификатов должна быть установлена перед рукопожатием SSL. База данных сертификатов CA используется сокетом во время фазы рукопожатия для проверки сертификата стороны.
См. также caCertificates().
void QSslConfiguration::setCiphers(const QList<QSslCipher> &ciphers)
Устанавливает криптографический набор шифров для этого сокета на ciphers, который должен содержать подмножество шифров в списке, возвращаемом supportedCiphers().
Ограничение набора шифров должно быть выполнено до фазы рукопожатия, где выбирается сессионный шифр.
См. также ciphers() и QSslSocket::supportedCiphers().
[static] void QSslConfiguration::setDefaultConfiguration(const QSslConfiguration &configuration)
Устанавливает стандартную конфигурацию SSL, которая будет использоваться в новых подключениях SSL, на configuration. Существующие подключения не затронуты этим вызовом.
См. также QSslSocket::supportedCiphers() и defaultConfiguration().
void QSslConfiguration::setDiffieHellmanParameters(const QSslDiffieHellmanParameters &dhparams)
Устанавливает настраиваемый набор параметров Diffie-Hellman, которые будут использоваться этим сокетом при работе в качестве сервера на dhparams.
Если параметры Diffie-Hellman не были установлены, объект QSslConfiguration по умолчанию использует группу MODP 1024 бит из RFC 2409.
Эта функция была добавлена в Qt 5.8.
См. также diffieHellmanParameters().
void QSslConfiguration::setEllipticCurves(const QVector<QSslEllipticCurve> &curves)
Устанавливает список эллиптических кривых, которые будут использоваться этим сокетом на curves, который должен содержать подмножество кривых в списке, возвращаемом supportedEllipticCurves().
Ограничение эллиптических кривых должно быть выполнено до фазы рукопожатия, где выбирается сессионный шифр.
Эта функция была добавлена в Qt 5.5.
См. также ellipticCurves.
void QSslConfiguration::setLocalCertificate(const QSslCertificate &certificate)
Устанавливает сертификат, который будет представлен стороне во время рукопожатия SSL на certificate.
Установка сертификата после установления соединения не имеет эффекта.
Сертификат — это средство идентификации, используемое в процессе SSL. Локальный сертификат используется удалённой стороной для проверки личности локального пользователя против своего списка центров сертификации. В большинстве случаев, таких как в веб-браузировании HTTP, только серверы идентифицируются клиентам, поэтому клиент не отправляет сертификат.
См. также localCertificate().
void QSslConfiguration::setLocalCertificateChain(const QList<QSslCertificate> &localChain)
Устанавливает цепочку сертификатов, которая будет представлена узлу во время рукопожатия SSL, на localChain.
Установка цепочки сертификатов после установления соединения не оказывает никакого эффекта.
Сертификат — это средство идентификации, используемое в процессе SSL. Локальный сертификат используется удалённой стороной для проверки идентификации локального пользователя по списку уполномоченных центров сертификации. В большинстве случаев, таких как веб-браузинг по протоколу HTTP, только серверы идентифицируются клиентам, поэтому клиент не отправляет сертификат.
В отличие от QSslConfiguration::setLocalCertificate() этот метод позволяет указать любые промежуточные сертификаты, необходимые для проверки вашего сертификата. Первый элемент в списке должен быть листом сертификата.
Эта функция была добавлена в Qt 5.1.
См. также localCertificateChain().
void QSslConfiguration::setPeerVerifyDepth(int depth)
Устанавливает максимальное количество сертификатов в цепочке сертификатов узла, которые должны быть проверены во время фазы рукопожатия SSL, на depth. Установка глубины 0 означает, что максимальная глубина не установлена, что указывает на необходимость проверки всей цепочки сертификатов.
Сертификаты проверяются в порядке выдачи, начиная с собственного сертификата узла, затем сертификата его издателя и так далее.
См. также peerVerifyDepth() и setPeerVerifyMode().
void QSslConfiguration::setPeerVerifyMode(QSslSocket::PeerVerifyMode mode)
Устанавливает режим проверки на mode. Этот режим определяет, должен ли QSslSocket запрашивать сертификат у узла (то есть клиент запрашивает сертификат у сервера или сервер запрашивает сертификат у клиента), и должен ли он требовать, чтобы этот сертификат был действительным.
По умолчанию режим — AutoVerifyPeer, который сообщает QSslSocket использовать VerifyPeer для клиентов и QueryPeer для серверов.
См. также peerVerifyMode().
void QSslConfiguration::setPreSharedKeyIdentityHint(const QByteArray &hint)
Устанавливает подсказку идентификации для аутентификации предварительно разделённого ключа на hint. Это повлияет на следующее инициированное рукопожатие; вызов этой функции для уже зашифрованного сокета не повлияет на подсказку идентификации сокета.
Подсказка идентификации используется только в QSslSocket::SslServerMode!
Эта функция была добавлена в Qt 5.8.
См. также preSharedKeyIdentityHint().
void QSslConfiguration::setPrivateKey(const QSslKey &key)
Устанавливает закрытый ключ соединения на key. Закрытый ключ и локальный сертификат используются клиентами и серверами, которые должны доказать свою идентичность узлам SSL.
И ключ, и локальный сертификат необходимы, если вы создаёте сокет SSL-сервера. Если вы создаёте сокет SSL-клиента, ключ и локальный сертификат необходимы, если ваш клиент должен идентифицировать себя SSL-серверу.
См. также privateKey() и setLocalCertificate().
void QSslConfiguration::setProtocol(QSsl::SslProtocol protocol)
Устанавливает настройку протокола для этой конфигурации на protocol.
Установка протокола после того, как соединение уже установлено, не оказывает никакого эффекта.
См. также protocol().
void QSslConfiguration::setSessionTicket(const QByteArray &sessionTicket)
Устанавливает билет сеанса для использования в рукопожатии SSL. QSsl::SslOptionDisableSessionPersistence должен быть выключен для работы, а sessionTicket должен быть в формате ASN.1, как возвращается функцией sessionTicket().
Эта функция была добавлена в Qt 5.2.
См. также sessionTicket(), QSsl::SslOptionDisableSessionPersistence и setSslOption().
void QSslConfiguration::setSslOption(QSsl::SslOption option, bool on)
Включает или выключает опцию совместимости SSL. Если on имеет значение true, опция option включена. Если on имеет значение false, опция option выключена.
См. также testSslOption().
QList<QSslCipher> QSslConfiguration::supportedCiphers()
Возвращает список криптографических шифров, поддерживаемых данной системой. Этот список устанавливается SSL-библиотеками системы и может отличаться в разных системах.
Эта функция была добавлена в Qt 5.5.
См. также ciphers() и setCiphers().
QVector<QSslEllipticCurve> QSslConfiguration::supportedEllipticCurves()
Возвращает список эллиптических кривых, поддерживаемых данной системой. Этот список устанавливается SSL-библиотеками системы и может отличаться в разных системах.
Эта функция была добавлена в Qt 5.5.
См. также ellipticCurves() и setEllipticCurves().
void QSslConfiguration::swap(QSslConfiguration &other)
Меняет местами экземпляры конфигурации SSL с other. Эта функция очень быстрая и никогда не терпит неудачу.
Эта функция была добавлена в Qt 5.0.
QList<QSslCertificate> QSslConfiguration::systemCaCertificates()
Данная функция предоставляет базу данных сертификатов CA, предоставленную операционной системой. База данных сертификатов CA, возвращаемая этой функцией, используется для инициализации базы данных, возвращаемой функцией caCertificates() в стандартной конфигурации QSslConfiguration.
Эта функция была добавлена в Qt 5.5.
См. также caCertificates(), setCaCertificates() и defaultConfiguration().
bool QSslConfiguration::testSslOption(QSsl::SslOption option) const
Возвращает true если указанная опция совместимости SSL включена.
Эта функция была добавлена в Qt 4.8.
См. также setSslOption().
bool QSslConfiguration::operator!=(const QSslConfiguration &other) const
Возвращает true если этот QSslConfiguration отличается от other. Два объекта QSslConfiguration считаются различными, если какой-либо параметр или состояние отличается.
См. также operator==().
QSslConfiguration &QSslConfiguration::operator=(QSslConfiguration &&other)
Оператор перемещающего присваивания.
QSslConfiguration &QSslConfiguration::operator=(const QSslConfiguration &other)
Копирует конфигурацию и состояние other. Если other пуста, этот объект также будет пустым.
bool QSslConfiguration::operator==(const QSslConfiguration &other) const
Возвращает true если этот объект QSslConfiguration равен other.
Два объекта QSslConfiguration считаются равными, если они имеют точно такие же настройки и состояние.
См. также operator!=().
Документация по переменным-членам
const char [] QSslConfiguration::NextProtocolHttp1_1
Эта переменная содержит значение, используемое для переговоров HTTP 1.1 во время переговорного протокола следующего уровня.
const char [] QSslConfiguration::NextProtocolSpdy3_0
Эта переменная содержит значение, используемое для переговоров SPDY 3.0 во время переговорного протокола следующего уровня.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.11/qsslconfiguration.html