Сервер имеет пару ключей и отправляет открытую часть (сертификат), чтобы клиент мог использовать этот открытый ключ для шифрования сообщений, чтобы они могли использовать симметричный ключ и в конечном итоге защитить все коммуникации.
Это не главное в сертификате сервера, и при современных методах обмена ключами (например, Диффи Хелманн) сертификат вообще не участвует в обмене ключами. То, что вы описываете, верно только для устаревшего обмена ключами RSA.
Основной пункт сертификата должен использоваться для аутентификации. Аутентификация означает, что сервер подтверждает, что ему принадлежит предоставленный сертификат , и затем клиент проверяет, что сертификат соответствует его ожиданиям, т. Е. Выдан доверенным центром сертификации, ожидаемым субъектом / SAN, не истек срок действия и т. Д.
Подтверждение владения осуществляется путем подписания некоторых данных (которые, по крайней мере, частично предоставлены одноранговым узлом, то есть клиентом) с закрытым ключом , соответствующим открытому ключу в сертификат. Затем узел (клиент) может проверить эту подпись, используя открытый ключ сертификата, и, если проверка проходит успешно, другая сторона (сервер), очевидно, владеет секретным секретным ключом, что означает, что он владеет сертификатом.
С клиентским сертификатом, используемым при взаимной аутентификации, процедура точно такая же, только с переключенными ролями. Вот почему секретный ключ необходим на стороне клиента.