Opensips Tls和证书问题

时间:2015-02-04 18:10:41

标签: ssl ssl-certificate server sip opensips

我正在尝试在opensips中设置证书验证以及blink sip客户端。我按照教程:

https://github.com/antonraharja/book-opensips-101/blob/master/content/3.2.%20SIP%20TLS%20Secure%20Calling.mediawiki

我的配置如下:

[opensips.cfg]
disable_tls = no
listen = tls:my_ip:5061
tls_verify_server= 0
tls_verify_client = 1
tls_require_client_certificate = 1
#tls_method = TLSv1
tls_method = SSLv23
tls_certificate = "/usr/local/etc/opensips/tls/server/server-cert.pem"
tls_private_key = "/usr/local/etc/opensips/tls/server/server-privkey.pem"
tls_ca_list = "/usr/local/etc/opensips/tls/server/server-calist.pem"

所以我生成了rootCA和服务器证书。然后我把server-calist.pem添加到那里的server-privkey.pem(否则blink sip客户端将不加载它)并在客户端中设置它。我还将server-calist.pem设置为blink中的证书颁发机构。但是当我尝试登录我的服务器时,我得到了:

Feb  4 21:02:42 user /usr/local/sbin/opensips[28065]: DBG:core:tcp_read_req: Using the global ( per process ) buff
Feb  4 21:02:42 user /usr/local/sbin/opensips[28065]: DBG:core:tls_update_fd: New fd is 17
Feb  4 21:02:42 user /usr/local/sbin/opensips[28065]: ERROR:core:tls_accept: New TLS connection from 130.85.9.114:48253 failed to accept: rejected by client

所以我假设客户端由于某种原因不接受服务器证书,虽然我在我的blink sip客户端关闭了“验证服务器”复选框!我想我有错误的证书颁发机构文件。

./user/user-cert.pem
./user/user-cert_req.pem
./user/user-privkey.pem
./user/user-calist.pem     <- this 4 are for using opensips as a client i think
./rootCA/certs/01.pem
./rootCA/private/cakey.pem
./rootCA/cacert.pem
./server/server-privkey.pem
./server/server-calist.pem
./server/server-cert.pem
./server/server-cert_req.pem
./calist.pem

任何人都可以帮忙,我在配置上做错了什么,或者我使用了错误的证书链?客户端作为客户端证书和ca权限证书应该使用什么证书?

1 个答案:

答案 0 :(得分:0)

好吧,我仍然不确定它是否正常工作,因为授权行为变得奇怪,但是在它挂了5-6分钟后我获得了成功授权,所以这是一个解决方案:

生成rootCA:

opensipsctl tls rootCA

然后在server.conf opensips文件夹中编辑tls文件并设置commonName = xxx.xxx.xxx.xxx,其中xxx.xxx.xxx.xxx是您的服务器IP地址。可以以任何方式编辑其他变量。生成CA签名的证书

opensipsctl tls userCERT server

这将产生4个文件。下载server-calist.pem,server-cert.pem,server-privkey.pem。打开server-privkey.pem,复制它的内容并粘贴到文件server-cert.pem中,然后再输入实际的证书。如果您使用blink,则生成的server-cert.pem将进入首选项 - &gt; account-&gt; advanced。 server-calist.pem进入首选项 - >高级。之后重新启动闪烁,5-6分钟后你的帐户将被登录。但我观察到一种奇怪的行为,如果你运行另一个闪烁的副本并尝试登录其他现有帐户之后您使用证书从第一个登录,您可以从其他帐户登录而无需提供证书。所以我不知道,但我认为它有效。

P.S。我询问了opensips邮件列表中的证书,但我猜他们发现我的问题太蹩脚了,所以我没有得到回复。如果你有同样的问题,并得到更好的结果或来自opensips支持的答案,请告诉我。