Ответ 1
Сертификаты сами по себе являются только публичными фрагментами информации. Что связывает сертификат открытого ключа с его именем, так это тот факт, что тот, у кого есть законный контроль над этим именем (например, ваше имя или имя вашего сервера), также имеет закрытый ключ для него.
Сертификаты используются для подтверждения личности удаленной стороны, предлагая удаленной стороне выполнить операцию, которая может быть выполнена только с помощью соответствующего закрытого ключа: подписание чего-либо (которое может быть проверено с помощью открытого ключа) или расшифровка чего-либо, что был зашифрован открытым ключом. (Оба могут произойти в рукопожатии SSL/TLS, в зависимости от набора шифров.)
Во время установления связи SSL/TLS сервер отправляет свой сертификат (в ясном виде) и доказывает клиенту, что у него есть соответствующий закрытый ключ с использованием аутентифицированного ключа обмен.
В вашем случае вы также хотите использовать аутентификацию сертификата клиента. Недостаточно отправить сертификат клиента во время рукопожатия: клиент должен также доказать, что у него есть закрытый ключ. В противном случае любой, кто получит этот сертификат, может клонировать его. Точка использования сертификатов - это предотвращение клонирования, поэтому вам никогда не придется показывать свой секрет (закрытый ключ).
В частности, клиент должен подписать рукопожатие в сообщении Certificate Verify сообщения об авторизации TLS, чтобы сервер мог проверить его открытый ключ, отправленный в сертификате клиента. Без этого шага аутентификация сертификата клиента не будет.
сертификат клиента был предоставлен мне третьим лицом, но он делает не содержит личный ключ
Предоставление вам сертификата без его закрытого ключа кажется немного бессмысленным, если только вы не ожидали, что вы предварительно запросили сертификат на своей стороне (в этом случае у вас будет закрытый ключ).
Действительно, вместо того, чтобы получать сертификат и его закрытый ключ, лучше использовать для вас создание своей пары ключей, создание запроса сертификата (CSR) и получить сертификат CA от этой CSR (но без них когда-либо зная ваш личный ключ). В этом случае вы должны были сохранить свой секретный ключ, и вы сможете использовать его с сертификатом, который вы получили.