在进行TLS呼叫时,TLS握手失败的原因

时间:2016-04-06 19:05:07

标签: ssl openssl pjsip

我正在尝试使用pjsip安装中的pjsua程序在两台虚拟机之间进行安全通话。我通过以下方式在每个节点上启动程序:

pjsua-x86_64-unknown-linux-gnu --use-tls

然后输入m进行调用并提交:sip:xxx.xxx.xx.x:5061; transport = TLS

在收货方面,我看到: 握手未能接受xxx.xxx.xx.x:58392:无共享密码

在拨号方面,我看到: 无法发送请求消息INVITE / cseq = 17559(tdta0x1ab89e0)! err = 495040(sslv3警报握手失败)

任何人都可以帮助我理解为什么会这样吗?

1 个答案:

答案 0 :(得分:0)

看起来服务器的密码配置(在您的情况下为接收方)与客户端(在您的情况下为拨号方)之间存在不匹配。

错误无共享密码(警报40)表示客户端使用的密码中至少没有任何一个可用于服务器端

您需要在两端调查SSL_CTX_set_cipher_list(如果您使用的是OpenSSL)API。

尝试在客户端和服务器计算机上配置常见的cihpers。

有些时候,由于公共证书使用的密码不可用,您可能会收到相同的错误(无chared密码)。更好地验证第一步,然后验证您的证书算法。

我的客户端服务器配置也遇到了类似的问题。

这是一个参考:

"no shared cipher" error with python and OpenSSL