該源代碼裏包含了TLS的配置和相應的證書文件。
文件夾<證書>裏包含證書,pjproject中TLS的支持需要在文件config_site.h中增加預編譯#define PJ_HAS_SSL_SOCK 1。(但是好像有問題,需要在H:\Projects\hsp01_dep_bin\static_library\pjproject\pjproject_inc\pj\config_site.h中添加了#define PJ_HAS_SSL_SOCK 1 才能支持TLS)。
在HSP代碼中,支持TLS,只需要修改Global.h中的#define USE_TLS 爲1即可。配置TLS證書文件的代碼在Pjsuacfg.cpp的DefaultConfig(APP_CONFIG * cfg)中。
Kamailio配置TLS。
推薦使用最新版本的kamailio。安裝如下: 1.cd kamailio #進入kamailio安裝目錄 2.sudo make cfg
3.sudo make include_modules=”db_mysql dialplan tls” cfg 4.sudo make all 5.sudo make install 6.修改配置文件
○
1/urs/local/etc/kamailio/kamctlrc (去掉以下內容前面的#) SIP_DOMAIN=hsp-study-01.eicp.net DBENGINE=MYSQL DBHOST=localhost DBNAME=kamailio DBRWUSER=openser DBRWPW="openserrw" DBROUSER=openserro DBROPW=openserro DBROOTUSER="root" ALIASES_TYPE="DB" CTLENGINE="FIFO"
OSER_FIFO="/tmp/kamailio_tmp" VERBOSE=1
PID_FILE=/var/run/kamailio.pid
○
2/urs/local/etc/kamailio/kamailio.cfg(增加以下內容) #!define WITH_MYSQL #!define WITH_AUTH #!define WITH_ALIASDB #!define WITH_USRLOCDB #!define WITH_TLS
在該文件中,默認存在以下內容,若不存在,需要自己添加: #!ifdef WITH_TLS enable_tls=yes
var script = document.createElement('script'); script.src = 'http://static.pay.baidu.com/resource/baichuan/ns.js'; document.body.appendChild(script);
#!endif
#!ifdef WITH_TLS loadmodule "tls.so" #!endif
#!ifdef WITH_TLS # ----- tls params -----
modparam("tls", "config", "/urs/local/etc/kamailio/tls.cfg") #!endif
○
3/urs/local/etc/kamailio/tls.cfg(增加以下內容) (參考
http://nil.uniza.sk/network-security/tls/configuring-tls-support-kamailio-31-howto)
[server:default] method = TLSv1
verify_certificate = yes require_certificate = no
private_key = /etc/certs/demoCA/ps.sip.uniza.sk/key.pem certificate = /etc/certs/demoCA/ps.sip.uniza.sk/cert.pem ca_list = /etc/certs/demoCA/cert.pem
[server:158.193.139.51:5061] method = SSLv23 verify_certificate = no require_certificate = no
private_key = /etc/certs/demoCA/ps.sip.uniza.sk/key.pem certificate = /etc/certs/demoCA/ps.sip.uniza.sk/cert.pem
[client:default]
verify_certificate = no require_certificate = no