MYVOIPAPP

基于TLS的SIP

1. 描述

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

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

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

MSS仅支持本地用户(SIP电话)采用 TLS,也就是说您无法将“SIP服务器”或者“外线”等配置为采用基于TLS的SIP。

当前MSS缺省仅仅支持 TLSv1.2 加密方法,不支持 SSLv2, SSLv3, TLSv1 以及 TLSv1.1。请确保您的SIP终端或者电话能支持TLSv1.2。未来我们会加入 TLSv1.3 等更严格的加密方式。

2. 配置

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

例如,如果您使用 windows 系统并且MSS安装在 'D:/myvoipapp/minisipserver' 目录,则您必须将数字证书保存为 “D:/myvoipapp/minisipserver/cert/server.crt”, 密钥文件保存为“D:/myvoipapp/minisipserver/cert/server.key”。

如果您使用 Ubuntu/Linux 版本,MSS安装在 “/opt/sipserver/” 目录,则您的数字证书应当保存为 “/opt/sipserver/cert/server.crt”,密钥文件应当保存为 “/opt/sipserver/cert/server.key”。

完成上述操作后,请重新启动MSS。如果一切正常的化, MSS 应当在主窗体中提示SIP-TLS信息。接着,您的 SIP 电话就可以依据您的数字证书采用 TLS 协议与 MSS 通信了。

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

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

修改TLS端口
问题2: 我能采用自签名的数字证书吗?

当然可以。实际上,我们在实验室中也是这么做的。您在创建自签名证书时,建议“common name”设置成您的MSS的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     
        
Q3:请推荐一款支持“基于TLS的SIP”的SIP终端

我们强烈推荐 microSIP ! 请点击此处访问其官方网站了解该软件更多细节信息。

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

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

请参考下图了解 microSIP 中的配置,关键点就是要明确指定传输类型(transport)。

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

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

microSIP 配置非标准 TLS 端口

如果 microSIP 采用“基于TLS的SIP”成功注册到 miniSIPServer 服务器,它的图标将会增加一个特殊的锁标志。

microSIP 成功注册标志