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的資料都是亂碼(已加密)。