3

我正在尝试调试与 TLS 相关的问题。在两个应用程序客户端 A 和服务器 B 之间设置了 TLS。A 和 B 都交换了证书,我已经验证证书具有正确的扩展名,并且也通过其根 CA 成功验证。叶证书的根 CA 已上传并可供应用程序信任存储使用。在 wireshark 中的 TLS 期间,我看到以下消息流:

CLIENT : Client Hello 
SERVER : Server Hello , Certificate , Certificate request , Server Hello Done
CLIENT : Certificate , Client key exchange 
CLIENT : Certificate Verify , Change Cipher spec , Encrypted Handshake Message 
SERVER : Alert : Level Fatal, Description : Decrypt Error )

TLS日志还显示:

TLS protocol error(ssl reason
code=block type is not 01 [106]),lib=rsa routines
[4],fun=RSA_padding_check_PKCS1_type_1 [112], errno=12 for
192956|<CLID::StandAloneCluster><NID::xxx.xxx.xxx.xxx><CT::0,0,0,0.0><IP::>
192956|<DE
V::><LVL::Error><MASK::0800>

任何可能导致服务器端解密错误的指针?TLS 交换期间的证书很好,可以正确链接到它们的根证书。

任何指针都会有很大帮助!

提前致谢!

4

2 回答 2

2

显然发生的事情是服务器无法解密客户端发送给他的第一条加密消息(更改密码规范之后的“完成”),该消息应该由客户端“更改”中指定的密码套件加密和验证密码规范”-消息。

这意味着例如服务器并不真正拥有来自它提供给带有证书或类似东西的客户端的公钥的私钥。

于 2013-11-07T17:03:32.643 回答
-1

尝试以下命令:

openssl s_client -connect mail.example.com:25 -starttls smtp
于 2015-08-17T20:13:23.287 回答