随着時代的發展,TLS也慢慢成了SIP通信的标配,下面我們來看一下如何在XSwitch中開啟TLS支援。
使用自簽名證書
TLS需要使用證書,XSwitch預設安裝會有一個自簽名的證書
/usr/local/freeswitch/certs/tls.pem
,我們先使用該證書示範TLS配置。
首先,打開【進階】⇨【SIP】,選擇一個SIP Profile,進入,修改并開啟所有TLS相關的配置參數,如:
-
:tls
,是否開啟TLS支援true
-
:tls-bind-params
,綁定TLS參數,會出現在Contact等頭域中transport=tls
-
:tls-cert-dir
,這是一個全局變量,預設值是$${certs_dir}
,指定證書路徑/usr/local/freeswitch/certs/
-
:tls-ciphers
,全局變量,代表使用的加密算法,預設值是``$${sip_tls_ciphers}
-
:tls-only
,如果改為True,則僅支援TLS,不支援UDP/TCP。false
-
:如果證書有密碼保護,需要填,否則留白。tls-passphrase
-
:tls-sip-port
,全局變量,預設為$${sip_tls_port}
。5061
-
:是否檢查日期。tls-verify-data
-
:tls-verify-depth
,設定允許的TLS驗證鍊的最大深度。2
-
:預設為空。tls-verify-in-subjects
-
:tls-verify-policy
。none
-
:tls-version
,預設值為:$${sip_tls_version}
。tlsv1,tlsv1.1,tlsv1.2
然後,點選右上角的重新開機,或在控制台上執行
reload mod_sofia
就可以了,如果在詳細資訊中看到如下内容,表示TLS配置好了:
tls-bind-url: sips:[email protected]:5061;maddr=172.18.0.3;transport=tls
複制
可以使用如下
openssl
指令檢查是否可以連接配接,如:
-----BEGIN CERTIFICATE-----...
複制
下面,就可以嘗試通過SIP用戶端連接配接了,不過,不是所有用戶端都支援自簽名證書。有的用戶端支援不驗證TLS證書,如果有的話可以嘗試開啟該選項測試。
使用權威機構簽發的TLS證書
如果在生産環境使用,需要使用權威機構簽發的TLS證書。很多權威機構也提供免費的證書,比如國内的一些雲廠商,國外的Let's Encrypt等。
XSwitch需要
pem
格式的TLS證書,如果你收到的證書不是
pem
格式的,可以轉換成
pem
格式的,以GoDaddy的證書為例:
cat 客戶提供的證書.pem chain.pem > fullchain.pemcat fullchain.pem 客戶的私鑰.pem > tls.pem
複制
使用它替換掉XSwitch中的
tls.pem
即可。
注意:RFC 5922:https://www.rfc-editor.org/rfc/rfc5922.html#section-7.2明确規定SIP協定必須不支援泛域名證書。是以,請不要使用泛域名證書。
本文的内容同樣适用于FreeSWITCH。