openssl中的'write certificate verify'是什么意思?

问题描述 投票:1回答:1

我使用以下命令使用存储在令牌中的密钥发送Web服务请求。

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:

我在我的Windows机器上使用openssl 1.1.0j,你能让我知道导致这个问题的原因。关于这个问题,没有太多可用的文档。

openssl ssl-certificate tls1.2 smartcard stunnel
1个回答
1
投票

write certificate verify是协议状态,涵盖构建和发送(客户端)证书验证消息;见rfc5426 section 7.4.8。错误堆栈有更具体的14166006:SSL routines:tls_construct_client_verify:EVP lib(以及源文件和行) - 当libssl代码调用PKCS11引擎要求设备签署需要签名的数据以证明您的身份时,会发生错误服务器。不幸的是,PKCS11引擎报告错误只是“功能失败”,这不是很有用。

你能检查引擎(或驱动程序吗?)是否在其他地方放置相关信息,例如Windows事件日志?

你从哪里得到PKCS11引擎?有文件吗?你确定它与你的OpenSSL兼容吗?你的OpenSSL是如何构建的(例如编译器,C运行时版本,如果是Microsoft,动态或静态库)?

您是否有其他成功使用此硬件的软件,最好使用相同的密钥?

可以(并且可能)将此硬件移动到另一台机器并尝试在那里吗?

© www.soinside.com 2019 - 2024. All rights reserved.