FreeSWITCH中配置支持TLS连接

为保证SIP信令的安全传递,可通过TLS连接以保证SIP数据传输的安全;若要保证媒体数据的安全,则需要开启srtp。

FreeSWITCH通过OpenSSL提供了对TLS的支持,为支持TLS连接需要创建证书,并修改配置。


创建证书

在conf目录下创建"ssl\ca"目录,用于创建证书。

需要管理员方式运行下面的命令(可能会提示找不到openssl.cnf文件,可忽略,或下载配置文件后,通过set  OPENSSL_CONF=....cnf来设定配置文件的位置)

1、创建CA证书

1). 创建tmp1.cfg文件,内容如下

[ req ]

default_bits            = 1024

prompt                  = no

distinguished_name      = req_dn

 

[ req_dn ]

commonName              = FreesSWITCH CA

organizationName        = FreeSWITCH

2).创建证书

openssl.exe req -new -out "careq.pem" -newkey rsa:1024 -keyout "cakey.pem" -config "tmp1.cfg" -nodes -sha1

openssl.exe x509 -req -signkey "cakey.pem" -in "careq.pem" -out "cacert.pem" -extfile "tmp1.cfg" -extensions ext -days 365 -sha1

2、生成证书

1). 创建tmp2.cfg文件,内容如下

[ req ]

default_bits            = 1024

prompt                  = no

distinguished_name      = req_dn

 

[ req_dn ]

commonName              = FreesSWITCH CA

organizationName        = FreeSWITCH

 

[ ext ]

basicConstraints=CA:FALSE

subjectKeyIdentifier=hash

authorityKeyIdentifier=keyid,issuer:always

subjectAltName=DNS:test.freeswitch.org 

2).生成证书

openssl.exe req -new -out "tmp2.req" -newkey rsa:1024 -keyout "tmp3.key" -config "tmp2.cfg" -nodes -sha1

openssl.exe x509 -req -CAkey "cakey.pem" -CA "cacert.pem" -CAcreateserial -in "tmp2.req" -out "tmp3.crt" -extfile "tmp2.cfg" -extensions ext -days 365 -sha1


FreeSWITCH中配置证书

生成好证书后,即可在FreeSWITCH中使用。

1、复制证书到ssl目录下

copy cacert.pem ..\cafile.pem

copy tmp3.* ..\agent.pem

2、修改配置文件(var.xml)

<X-PRE-PROCESS cmd="set" data="internal_tls_port=5961"/>

<X-PRE-PROCESS cmd="set" data="internal_ssl_enable=true"/>

<X-PRE-PROCESS cmd="set" data="internal_ssl_dir=.../conf/ssl"/>

完成重启后,即可通过TLS进行注册连接(如microSIP中,在账户修改中连接方式选择TLS,登录即可),此时通过WireShark抓包会发现TCP的数据都是乱码(已加密)。

猜你喜欢

转载自blog.csdn.net/alwaysrun/article/details/84109372