MYVOIPAPP

基于TLS的SIP

1. 描述

缺省情况下,大多数的SIP设备主要采用 UDP 协议来传输SIP消息,但是对于一些 SIP 设备、 VOIP 系统而言,要求采用 TLS 加密传输协议来传输 SIP 消息,尤其是部分企业建立内部统一通信系统时更是如此。

miniSIPServer V13.1 及以上版本可以支持基于UDP、TCP以及TLS的SIP消息。网络拓扑可以为以下组网:

采用不同协议的 miniSIPServer 网络拓扑

miniSIPServer 支持本地用户(SIP电话)以及外线采用 TLS 传输 SIP 消息。

当前 miniSIPServer 支持 TLSv1.2 以及 TLSv1.3 加密方法,不支持 SSLv2, SSLv3, TLSv1 以及 TLSv1.1。请确保您的 SIP 终端或者电话能支持 TLSv1.2 或者 TLSv1.3。

2. 配置

您仅需要指示 miniSIPServer 加载数字证书证书文件以及密钥文件。这些文件必须是PEM格式,数字证书文件应当命名为“server.crt”,密钥文件应当命名为“server.key”,并且它们应该保存在 应用数据目录中的“siptlsCert”子目录下。

例如,如果您使用 windows 系统,miniSIPServer 的 AppData 目录是 'C:\Users\your_name\AppData\Roaming\minisipserver' 目录,则您必须将数字证书保存为 “C:\Users\your_name\AppData\Roaming\minisipserver\siptlsCert\server.crt”, 密钥文件保存为“C:\Users\your_name\AppData\Roaming\minisipserver\siptlsCert\server.key”。

如果您使用 Ubuntu/Linux 版本, 则您的数字证书应当保存为 “$HOME/.minisipserver/siptlsCert/server.crt”,密钥文件应当保存为 “$HOME/.minisipserver/siptlsCert/server.key”。

完成上述操作后,请重新启动 miniSIPServer。如果一切正常, miniSIPServer 在主窗体日志中显示 SIP-TLS 的端口信息。

3. 常见问题
问题1: 我能用另外一个TCP端口来启动TLS吗?

缺省情况下, miniSIPServer 采用SIP标准定义的TCP端口5061来启动TLS,您也可以将其修改为任何您希望的端口,例如5062端口。在 miniSIPServer 主窗体中,请点击菜单“数据 / 系统配置 / SIP”,然后修改“TLS端口”项,重启 miniSIPServer 即可。请参考下图的配置。

修改TLS端口

问题2: 我能采用自签名的数字证书吗?

当然可以。实际上,我们在实验室中也是这么做的。您在创建自签名证书时,建议“common name”设置成您的 miniSIPServer 的IP地址或者域名。

我们通常使用 openSSL 来创建所有必须的数字证书文件, 请参考以下命令:

(1) openssl genrsa -out server.key 2048
(2) openssl req -new -key server.key -out server.csr
(3) openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt     
问题3:请推荐一款支持“基于TLS的SIP”的软终端

我们强烈推荐 miniSIPPhone ! 请点击此处了解该软件更多细节信息。

在 miniSIPPhone 中很容易配置“SIP over TLS”方式与 miniSIPServer 配合工作。例如,以下是我们实验室的一台 miniSIPServer 设备的信息:

服务器地址: 192.168.3.70
TLS 端口: 5061
分机号码: 101

请参考下图了解 miniSIPPhone 中的配置,关键点就是要明确端口以及传输类型(transport)。

在 miniSIPPhone 中配置 sip over TLS 传输类型

在 "问题1" 问答章节中,我们如果将服务器的 TLS 端口修改为非标准的5062,那么在 miniSIPPhone 的配置中, 也需要明确指示出这个非标准端口, 如下图所示:

miniSIPPhone 配置非标准 TLS 端口

某些 SIP 电话(或者终端)没有独立的端口配置项,因此需要在配置地址时同时指定地址和端口,如下所示:

192.168.3.70:5062