FreeSWITCH的TLS加密
听着很高大上(实际也很实用)的加密机制,在FreeSWITCH里配置支持竟然这么简单!
Greate FreeSWITCH and Greate Programmer!
① cd /usr/local/freeswitch/bin(以默认的安装路径为例)
② 产生root的证书
./gentls_cert setup -cn 你的域名 -alt DNS:dns服务器的域名 -org 企业名称
③ 产生Server的证书
./gentls_cert create_server -cn 你的域名 -alt DNS:dns服务器的域名 -org 企业名称
④ 查看证书的明细
openssl x509 -noout -inform pem -text -in /usr/local/freeswitch/conf/ssl/agent.pem
⑤ 修改vars.xml文件
<!-- Internal SIP Profile --> <X-PRE-PROCESS cmd="set" data="internal_auth_calls=true"/> <X-PRE-PROCESS cmd="set" data="internal_sip_port=5060"/> <X-PRE-PROCESS cmd="set" data="internal_tls_port=5061"/> <X-PRE-PROCESS cmd="set" data="internal_ssl_enable=false"/> <X-PRE-PROCESS cmd="set" data="internal_ssl_dir=$${base_dir}/conf/ssl"/> 将internal_ssl_enable=false改为true
至此,重启reload mod_sofia服务器已经支持TLS了,但是此时所有的客户端下载的都是root的证书。这种情况下服务器可能会遭受MITM攻击(Man-in-the-Middle Attack)。
更安全的做法是为每一个客户端生成一个客户端证书。
⑥ 产生客户端证书
./gentls_cert create_client -cn client -out client
OK,抓包看看吧。
支持TLS的客户端的注册等信令交互已经肉眼无法识别了。
如果这个客户端还支持SRTP,好吧,媒体流也加密了,这下安全级别就上去了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了