聽着很高大上(實際也很實用)的加密機制,在FreeSWITCH裏配置支持居然這麼簡單!安全
Greate FreeSWITCH and Greate Programmer!服務器
① cd /usr/local/freeswitch/bin(以默認的安裝路徑爲例)加密
② 產生root的證書spa
./gentls_cert setup -cn 你的域名 -alt DNS:dns服務器的域名 -org 企業名稱
③ 產生Server的證書code
./gentls_cert create_server -cn 你的域名 -alt DNS:dns服務器的域名 -org 企業名稱
④ 查看證書的明細orm
openssl x509 -noout -inform pem -text -in /usr/local/freeswitch/conf/ssl/agent.pem
⑤ 修改vars.xml文件server
<!-- 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)。xml
更安全的作法是爲每個客戶端生成一個客戶端證書。blog
⑥ 產生客戶端證書dns
./gentls_cert create_client -cn client -out client
OK,抓包看看吧。
支持TLS的客戶端的註冊等信令交互已經肉眼沒法識別了。
若是這個客戶端還支持SRTP,好吧,媒體流也加密了,這下安全級別就上去了。