PJSIP TLS验证错误(PJSIP_TLS_ECERTVERIF)

时间:2015-04-09 17:40:02

标签: ssl certificate voip pjsip verify

我最近开始使用PJ Project和GTK +开发一个小型SIP软电话应用程序。我的主要目标是创建一个支持TLS和SRTP加密(和MWI)的软电话。但是我已经卡在库注册帐户的部分,因为应用程序在我询问它时无法验证服务器。 我认为我在编码时误解了一些东西,因为我是新手,但今天我刚刚使用附在源代码中的PJSUA应用程序测试了库,它可以注册我的SIP帐户,除非我已经启动了程序使用--tls-verify-server标志。 为了说清楚,我已经为Asterisk创建了自己的证书颁发机构,密钥和证书,并且已经将CA安装到我的机器上。 我必须注意,此设置适用于商业软件,它可以毫无问题地验证证书。

我用过的PJSUA标志:

--use-tls
--tls-ca-file /etc/ssl/certs/ca-certificates.crt
--id=sip:u-kuklinistvan1@kingdom.info.tm;transport=tls
--registrar=sip:kingdom.info.tm;transport=tls
--realm=kingdom.info.tm
--username=u-kuklinistvan1
--password=xxxxxx
--use-srtp=2
--mwi
--tls-verify-server

它说(please follow the link for the long version):

19:21:44.728    pjsua_app.c  TLS cert verification result of [94.21.11.229:5061] : The server identity does not match to any identities specified in the certificate

...由于OpenSSL本身接受证书,因此无法实现:

openssl s_client -CAfile /etc/ssl/certs/ca-certificates.crt -connect kingdom.info.tm:5061

(click here for the rest)

Verify return code: 0 (ok)

额外信息 我通过hostname kingdom.info.tm将PJSUA作为端点连接到注册商。

我是否可能遇到过错误或者我不明白? 谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

  

...与证书中指定的任何身份不匹配

     

...由于OpenSSL本身接受证书,因此可能不正确:... openssl s_client ...

错误消息是指根据证书检查身份,即您根据证书中的名称提供的主机名(主题备用名称,通用名称)。 openssl s_client不进行任何身份检查,只检查有效的信任链。

查看它实际包含的服务器提供的证书包含kingdom.info.tm的通用名称。但是从错误消息中看起来它需要IP地址:TLS cert verification result of [94.21.11.229:5061]: ...。您是否使用IP地址指定了对等方的SIP URL?