6.4.1 Сообщение с сертификатом сервера Certificate
Данное сообщение посылается сервером и содержит цепочку сертификатов. Сертификат сервера следует первым в данной цепочке и содержит открытый ключ сервера.
Каждый сертификат из цепочки сертификатов сервера должен быть подписан в соответствии с одной из пар алгоритмов из расширения signature_algorithms.
Открытый ключ сервера должен соответствовать одной из пар алгоритмов подписи и хэширования, указанной в расширении signature_algorithms, а также принадлежать одной из эллиптических кривых, описанных в Р 1323565.1.024. При этом алгоритмы подписи, использовавшиеся для подписания сертификатов из цепочки сертификатов сервера, могут отличаться от алгоритма подписи, соответствующего хранящемуся в сертификате сервера открытому ключу сервера.
Структура данного сообщения выглядит следующим образом:
opaque ASN.1Cert<1..2^24-1>;
struct {
ASN.1Cert Certificate_list<0..2^24-1>;
} Certificate;
6.4.2 Сообщение запроса сертификата CertificateRequest
Данное сообщение посылается сервером в случае двусторонней аутентификации.
Сообщение запроса сертификата содержит следующие параметры:
типы сертификатов | - | список типов сертификатов, поддерживаемых сервером. Значения элементов списка certificate_types, допустимые к использованию в рамках настоящих рекомендаций, заданы в 10.3; |
поддерживаемые алгоритмы подписи и хэширования | - | пары алгоритмов подписи и хэширования, указывающие на то, с помощью каких алгоритмов могут быть подписаны сертификаты из цепочки сертификатов клиента. Ключ проверки подписи, хранящийся в сертификате клиента, должен также соответствовать одному из алгоритмов подписи (не обязательно тому же, которым подписан сертификат), перечисленных в поле supported_signature_algorithms; |
удостоверяющие центры | - | список допустимых удостоверяющих центров (УЦ), представленных в формате кодирования DER. Данный список может задавать допустимые имена для корневых УЦ или для подчиненных УЦ. Если данное поле остается пустым, то клиент может посылать любой сертификат, соответствующий полю certificate_types. |
Структура данного сообщения выглядит следующим образом:
struct {
ClientCertificateType Certificate types<1..2^8-1>;
SignatureAndHashAlgorithm
supported signature algorithms<2..2^16-2>;
DistinguishedName certificate authorities<0..2^16-1>;
} CertificateRequest;
Структура SignatureAndHashAlgorithm задана в 6.3.4.1.
Тип DistinguishedName определен следующим образом:
opaque DistinguishedName<1..2^16-1>;
6.4.3 Сообщение о завершении приветствия ServerHelloDone
Данное сообщение посылается сервером и сигнализирует о том, что все сообщения этапа приветствия переданы и сервер переходит в состояние ожидания сообщений от клиента. Структура данного сообщения выглядит следующим образом:
struct { } ServerHelloDone;