Что подразумевается под «проверкой сертификата записи» в openssl? - PullRequest
1 голос
/ 19 марта 2019

Я отправляю запрос веб-службы, используя ключ, сохраненный в токене, с помощью приведенной ниже команды.

openssl s_client -engine pkcs11 -key slot_1-id_00 -keyform engine -CAfile cacert.pem -cert cert.pem -certform PEM -connect hostname:443 -tls1_2 -state -prexit

И получаю сообщение об ошибке как

SSL_connect:error in SSLv3/TLS write certificate verify
13808:error:8207A006:PKCS#11 module:pkcs11_private_encrypt:Function failed:p11_rsa.c:116:
13808:error:14166006:SSL routines:tls_construct_client_verify:EVP lib:..\Users\Downloads\openssl-1.1.0j.tar\openssl-1.1.0j\ssl\statem\statem_clnt.c:2663:

Я использую openssl 1.1.0j на моем компьютере с Windows, не могли бы вы сообщить мне, что вызывает эту проблему.Нет большой документации по этому вопросу.

1 Ответ

1 голос
/ 19 марта 2019

write certificate verify - это состояние протокола, которое охватывает здания и , отправляющие (клиент) сообщение проверки сертификата;см. rfc5426, раздел 7.4.8 .Стек ошибок имеет более конкретный 14166006:SSL routines:tls_construct_client_verify:EVP lib (а также исходный файл и строку) - ошибка возникает, когда код libssl вызывает механизм PKCS11, чтобы попросить устройство подписать данные, которые должны быть подписаны, чтобы доказать вашуличность к серверу.К сожалению, механизм PKCS11 сообщает об ошибке просто как «сбой функции», что не очень информативно.

Можете ли вы проверить, размещает ли движок (или драйвер?) Соответствующую информацию где-либо еще, например, журнал событий Windows?

Где вы взяли движок PKCS11?Есть ли документ для этого?Вы уверены, что он совместим с вашим OpenSSL?Как был построен ваш OpenSSL (например, компилятор, C-версия, если Microsoft, динамические или статические библиотеки)?

У вас есть другое программное обеспечение, которое успешно использует это оборудование, и желательно тот же ключ от него?

Можно (и можете) переместить это оборудование на другую машину и попробовать там?

...