最近,我开始使用PJ项目和GTK+开发一个小型的SIP软电话应用程序。我的主要目标是创建一个同时支持TLS和SRTP加密(和MWI)的软电话。然而,我被困在库注册帐户的部分,因为应用程序在我请求服务器时没有验证服务器。我觉得我在编码的时候误解了一些东西,因为我是个新手,但今天我刚刚用PJSUA应用程序测试了这个库,PJSUA应用程序附在源代码中,它可以注册我的SIP帐户,除非我用--tls-验证-服务器标志启动了这个程序。为了说明清楚,我为我自己的证书颁发机构、密钥和证书创建了星号,并在我的计算机上安装了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上面写着(请按长版本的连结。):
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...which不能为真,因为OpenSSL本身接受证书:
openssl s_client -CAfile /etc/ssl/certs/ca-certificates.crt -connect kingdom.info.tm:5061(其余部分请点击这里)
Verify return code: 0 (ok)附加信息i通过主机名kingdom.info.tm将作为端点连接到注册员。
有没有可能我遇到了一个bug,或者我只是不明白什么?谢谢你的帮助!
发布于 2015-04-09 18:00:51
..。与证书中指定的任何标识不匹配。 ..。这可能不是真的,因为OpenSSL本身接受证书:.
openssl s_client ...
错误消息指的是根据证书检查标识,即您提供的主机名与证书中的名称(subject alternative name,公共名称)。openssl s_client不进行任何身份检查,而是只检查有效的信任链。
查看服务器提供的证书,它实际上包含了kingdom.info.tm的公共名称。但是从错误消息看,它需要IP地址:TLS cert verification result of [94.21.11.229:5061]: ...。您是否用IP地址指定了对等方的SIP?
https://stackoverflow.com/questions/29545339
复制相似问题