6

我正在使用 pyOpenSSL,它是 OpenSSL 的包装器。我有一个客户端程序试图连接到我的服务器并反复sslv3 alert bad certificate访问服务器。直到我意识到这是由于客户的时钟设置不正确,我才能够找出问题所在。我猜客户端认为服务器的证书在“未来”中已经过时了,并且不知何故导致sslv3 alert bad certificate服务器上出现了错误。

有没有办法更好地描述特定证书失败的原因?我假设在这种情况下,由于时钟设置不正确,客户端验证失败,但服务器端的错误与发送错误证书并且服务器端验证失败相同。

4

2 回答 2

3

不幸的是,问题描述相当有限。错误通过 TLS 警报传输。每个警报只是一个数字,没有任何附加信息,并且定义的警报很少,请参阅http://en.wikipedia.org/wiki/Transport_Layer_Security#Alert_protocol。例如,有一个过期证书的警报,但没有一个尚未生效的证书的警报,这在您的情况下是必要的。所以客户可以发回的只是证书是坏的。

于 2014-10-29T14:30:29.677 回答
1

在大多数情况下sslv3 alert bad certificate意味着根本没有提供 CA 信息或者是错误的。里面有curl一个参数--cacert,供openssl s_client使用-CAfile

于 2021-09-10T15:23:32.457 回答