我正在尝试调试与TLS相关的问题。 TLS在两个应用程序客户端A&之间设置。服务器B. A& 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>
任何可能导致服务器端出现Decrypt错误的指针? 在TLS交换期间的证书很好,可以正确链接到他们的根证书。
任何指针都会有很大的帮助!
提前致谢!
答案 0 :(得分:1)
显然正在发生的情况是服务器无法解密客户端发送给他的第一条加密消息(更改密码规范后的“已完成”),该消息应由加密并由其中指定的密码套件验证。客户的“更改密码规范” - 消息。
这意味着服务器例如并不真正拥有它使用证书或类似内容提供给客户端的公钥中的私钥。
答案 1 :(得分:0)
openssl s_client -host ip_address -port port_num
请将ip_address替换为您的客户端ip或服务器ip,并将port_num替换为其ssl端口,并打印出结果,以便我们找到答案。
答案 2 :(得分:0)
尝试以下命令:
openssl s_client -connect mail.example.com:25 -starttls smtp