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,好吧,媒体流也加密了,这下安全级别就上去了。

 

转载于:https://www.cnblogs.com/yoyotl/p/4975273.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/543946.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

kotlin 查找id_Kotlin程序查找Sphere的体积

kotlin 查找idFormula to find volume of Sphere: volume (4/3)*PI*r^3 查找球体体积的公式&#xff1a; volume (4/3)* PI * r ^ 3 Given the value of radius, we have to find the volume of Sphere. 给定半径的值&#xff0c;我们必须找到球体的体积。 Example: 例&#…

Redis 实现分布式锁的 7 种方案

前言日常开发中&#xff0c;秒杀下单、抢红包等等业务场景&#xff0c;都需要用到分布式锁。而Redis非常适合作为分布式锁使用。本文将分七个方案展开&#xff0c;跟大家探讨Redis分布式锁的正确使用方式。如果有不正确的地方&#xff0c;欢迎大家指出哈&#xff0c;一起学习一…

css复选框样式_使用CSS样式复选框

css复选框样式Introduction: 介绍&#xff1a; Sometimes we want to develop a website or web page that would contain a form and through that form, we want to get some information from the user. Now that information could be of any type depending on the kind …

大数据计算平台Spark内核全面解读

1、Spark介绍 Spark是起源于美国加州大学伯克利分校AMPLab的大数据计算平台&#xff0c;在2010年开源&#xff0c;目前是Apache软件基金会的顶级项目。随着Spark在大数据计算领域的暂露头角&#xff0c;越来越多的企业开始关注和使用。2014年11月&#xff0c;Spark在Daytona Gr…

javascript对话框_JavaScript中的对话框

javascript对话框JavaScript对话框 (JavaScript Dialog Boxes) Dialog boxes are a great way to provide feedback to the user when they submit a form. In JavaScript, there are three kinds of Dialog boxes, 对话框是向用户提交表单时提供反馈的好方法。 在JavaScript中…

排查死锁的 4 种工具,秀~

作者 | 磊哥来源 | Java中文社群&#xff08;ID&#xff1a;javacn666&#xff09;转载请联系授权&#xff08;微信ID&#xff1a;GG_Stone&#xff09;死锁&#xff08;Dead Lock&#xff09;指的是两个或两个以上的运算单元&#xff08;进程、线程或协程&#xff09;&#xf…

MySQL 常见的 9 种优化方法

大家好&#xff0c;我是磊哥&#xff01;今天给大家分享一些简单好用的数据库优化方式&#xff01;1、选择最合适的字段属性Mysql是一种关系型数据库&#xff0c;可以很好地支持大数据量的存储&#xff0c;但是一般来说&#xff0c;数据库中的表越小&#xff0c;在它上面执行的…

oracle中dbms_DBMS中的实例和架构

oracle中dbms1)实例 (1) Instances) What is the Instance? If we look towards it in real life, we refer instance as an occurrence of something at a particular moment of time. In Database Management system, there are a lot of changes occurring over time to th…

acess() 判断目录是否存在

acess()功能描述&#xff1a; 检查调用进程是否可以对指定的文件执行某种操作。 <pre lang"c" escaped"true">#include <unistd.h>int access(const char *pathname, int mode); </pre>参数说明&#xff1a;pathname: 需要测试的文件路径…

过滤器和拦截器的 5 个区别!

作者 | 磊哥来源 | Java面试真题解析&#xff08;ID&#xff1a;aimianshi666&#xff09;转载请联系授权&#xff08;微信ID&#xff1a;GG_Stone&#xff09;过滤器&#xff08;Filter&#xff09;和拦截器&#xff08;Interceptor&#xff09;都是基于 AOP&#xff08;Aspec…

简单的求和(打表)

简单的求和 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 130 Solved: 20SubmitStatusWeb BoardDescription 定义f(i)代表i的所有因子和(包括1和i)&#xff0c;给定一个l,r。求f(l)f(l1)...f(r)。 Input 第一行输入一个t(t<1000)&#xff0c;代表有t组测试数据&#x…

chroot函数使用_PHP chroot()函数与示例

chroot函数使用PHP chroot()函数 (PHP chroot() function) The full form of chroot is "Change Root", the function chroot()" is used to change the root directory, and, also changes the current working directory to "/". chroot的完整格式为…

面试突击第一季完结:共 91 篇!

感谢各位读者的支持与阅读&#xff0c;面试突击系列第一季到这里就要和大家说再见了。希望所写内容对大家有帮助&#xff0c;也祝你们找到满意的工作。青山不改&#xff0c;细水长流&#xff0c;我们下一季再见&#xff01;91&#xff1a;MD5 加密安全吗&#xff1f;90&#xf…

linux升级python

Centos 6.6自带的是Python 2.6.6, 现在升级为2.7.6[rootoffice-vps4052 ~]# python -VPython 2.6.6操作步骤如下:1) 下载并解压python 2.7.6源码包[rootoffice-vps4052 ~]# cd /usr/local/src[rootoffice-vps4052 ~]# wget http://python.org/ftp/python/2.7.6/Python-2.7.6.tg…

SpringBoot官方热部署和远程调试神器

平时使用SpringBoot开发应用时&#xff0c;修改代码后需要重新启动才能生效。如果你的应用足够大的话&#xff0c;启动可能需要好几分钟。有没有什么办法可以加速启动过程&#xff0c;让我们开发应用代码更高效呢&#xff1f;今天给大家推荐一款SpringBoot官方的热部署工具spri…

c# 小程序支付后台示例_C中的#if指令示例| C预处理程序

c# 小程序支付后台示例The #if is a preprocessor directive in C programming language and it is used for conditional compilation. #if是C编程语言中的预处理程序指令&#xff0c;用于条件编译。 General for of the #if directive is: #if指令的常规为&#xff1a; #if…

MySQL 优化:Explain 执行计划详解

昨天中午在食堂&#xff0c;和部门的技术大牛们坐在一桌吃饭&#xff0c;作为一个卑微技术渣仔默默的吃着饭&#xff0c;听大佬们高谈阔论&#xff0c;研究各种高端技术&#xff0c;我TM也想说话可实在插不上嘴。聊着聊着突然说到他上午面试了一个工作6年的程序员&#xff0c;表…

c语言中的逻辑运算符_C / C ++中的逻辑运算符

c语言中的逻辑运算符逻辑运算符 (Logical Operators) Logical operators are used to check the combinations of the two conditional expressions. 逻辑运算符用于检查两个条件表达式的组合。 The following are the types of logical operators. 以下是逻辑运算符的类型 。…

顶级 Javaer 常用的 14 个类库

作者&#xff1a;小姐姐味道昨天下载下来Java16尝尝鲜。一看&#xff0c;好家伙&#xff0c;足足有176MB大。即使把jmc和jvisualvm给搞了出去&#xff0c;依然还是这么大&#xff0c;真的是让人震惊不已。但即使JDK足够庞大&#xff0c;它的功能也已经不够用了。我们需要借助于…

势头迅猛的儿童手表:恐陷下一个文曲星之地?

历史的节奏&#xff0c;就是不断重复此前发生过的事。虽然表现形态不一&#xff0c;但蕴藏的规律、趋势总是有着惊人的相似。在科技行业&#xff0c;同样如此——iPhone开启的智能手机时代走过的大兴—→平稳→下降态势&#xff0c;与PC的历程几乎是一样的。而在国内&#xff0…