【问题标题】:Opensips Tls and certificates issuesOpensips Tls 和证书问题
【发布时间】:2015-02-10 06:32:06
【问题描述】:

我正在尝试在 opensips 中设置证书验证以及闪烁 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 中(否则闪烁 sip 客户端不会加载它)并将其设置在客户端中。我还在眨眼间将 server-calist.pem 设置为证书颁发机构。但是当我尝试登录我的服务器时,我得到:

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

所以我假设客户端由于某种原因不接受服务器证书,尽管我在闪烁 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权威证书?

【问题讨论】:

  • 我的印象是 SSL_accept() 实际上在服务器端失败了!您能否尝试清理您的 Blink 证书,并让它使用您的 OpenSIPS 中的证书?
  • @LiviuChircu 我会尝试并告诉你我得到了什么
  • @LiviuChircu 我从闪烁程序文件文件夹中删除了“tls”文件夹,并添加了 server-calist.pem 和 server-privkey.pem 作为帐户密钥,以及 server-calist.pem(其中与 /rootCA/cacert.pem 相同)作为证书颁发机构文件。我仍然得到相同的Feb 5 01:04:07 user /usr/local/sbin/opensips[30040]: DBG:core:tls_update_fd: New fd is 17 Feb 5 01:04:07 user /usr/local/sbin/opensips[30040]: ERROR:core:tls_accept: New TLS connection from 130.85.9.114:51297 failed to accept: rejected by client
  • @LiviuChircu 也是日志配置:debug=6 log_stderror=no log_facility=LOG_LOCAL0
  • @LiviuChircu 我尝试放置由星号生成的错误 pem 证书并得到以下日志 pastebin.com/xGmmVeZj 。它仍然说被客户端拒绝,但我认为你是对的,实际上是服务器端正在关闭连接。我还尝试从 Blink 中删除所有证书,然后再试一次。我又收到了rejected by client,但没有任何验证通知,当您放置错误的证书时会出现。

标签: ssl ssl-certificate server sip opensips


【解决方案1】:

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

生成根CA:

opensipsctl tls rootCA

然后在您的tlsopensips 文件夹中编辑server.conf 文件并设置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 将进入首选项->帐户->高级。 server-calist.pem 进入首选项->高级。在重新启动之后眨眼,5-6 分钟后您的帐户将被登录。但我观察到一个奇怪的行为,如果您运行另一个眨眼副本并尝试登录另一个现有帐户之后您从第一个使用证书登录,您可以从其他帐户登录而无需提供证书。所以我不知道,但我认为它有效。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-13
    • 2020-01-30
    • 2016-11-14
    • 2018-11-23
    • 1970-01-01
    • 1970-01-01
    • 2021-04-28
    • 1970-01-01
    相关资源
    最近更新 更多