文档中心
FreeSWITCHSSL璇佷功閰嶇疆鎸囧崡浠庡叆闂ㄥ埌绮鹃€?txt
时间 : 2025-09-27 15:47:00浏览量 : 3
什么是FreeSWITCH SSL证书?

简单来说,SSL证书就像是FreeSWITCH的电话"身份证"和"加密锁"。当你的FreeSWITCH服务器和别人通信时(比如SIP客户端、WebRTC通话),这个证书能实现两个重要功能:
1. 证明身份:告诉对方"我就是真正的服务器,不是假冒的"
2. 加密通话:把你们的通话内容变成密文,防止被窃听
举个例子:就像你去银行办业务,柜员会出示工作证(证明身份),然后把你们对话放在隔音玻璃房里(加密通信)。
为什么必须配置SSL证书?
我见过太多客户因为没配SSL证书导致的安全事故:
案例1:某公司使用WebRTC但没配证书,黑客轻松窃听了所有销售代表的客户通话,导致大量客户隐私数据泄露。
案例2:一个IPPBX系统因使用自签名证书(后面会解释什么是自签名),被中间人攻击篡改通话内容,造成重大商业损失。
没有SSL证书的FreeSWITCH就像:
- 不锁门的保险箱
- 不戴口罩进医院
- 用明信片写密码
SSL证书类型详解
1. 自签名证书(自己造的"身份证")
```bash
生成自签名证书的命令示例
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes
```
特点:
- 免费且快速生成
- 浏览器/客户端会显示警告(就像山寨身份证)
- 适合测试环境或内部使用
2. CA签名证书(公安局发的正规身份证)
获取方式:
1. 从Let's Encrypt等机构免费获取
2. 购买商业CA的证书(DigiCert/Sectigo等)
Let's Encrypt申请示例
certbot certonly --standalone -d yourdomain.com
- 需要域名验证
- 浏览器完全信任
- 适合生产环境
3. EV扩展验证证书(高级防伪身份证)
- CA会严格审核企业资质
- 浏览器显示绿色企业名称
- 价格较高但信任度最高
FreeSWITCH配置SSL全流程
?? Step1:准备证书文件
通常需要三个文件:
1. `cert.pem` - SSL证书本体
2. `privkey.pem` - 私钥文件
3. `chain.pem` - CA中间证书链
把它们放到FreeSWITCH的certs目录:
/usr/local/freeswitch/certs/
?? Step2:修改配置文件
编辑`/usr/local/freeswitch/conf/sip_profiles/internal.xml`:
```xml
?? Step3:重启服务生效
fs_cli -x "reload mod_sofia"
WebRTC特别配置
对于WebRTC应用,还需要修改`/usr/local/freeswitch/conf/autoload_configs/event_socket.conf.xml`:
SSL配置常见错误排查表
| 错误现象 | 可能原因 | 解决方案 |
||-|-|
| "不安全连接"警告 | 自签名证书 | 改用CA签名的正式证 |
| ERR_CERT_AUTHORITY_INVALID | 中间证缺失 | 补全chain.pem文件 |
| TLS握手失败 | 时间不同步 | 同步服务器时间(NTP) |
| "私钥不匹配"错误 | 公私钥不对应 | 重新生成密钥对 |
HTTPS与WSS配置实战
如果你要通过网页访问FreeSWITCH管理界面(https://your-server:443)或使用WebSocket Secure(wss://):
修改`/usr/local/freeswitch/conf/autoload_configs/xml_rpc.conf.xml`:
Let's Encrypt自动化续期技巧
Let's Encrypt每90天就会过期,用这个脚本自动续期:
!/bin/bash
certbot renew --pre-hook "systemctl stop freeswitch" \
--post-hook "systemctl start freeswitch"
cp /etc/letsencrypt/live/YOURDOMAIN/* /usr/local/freeswitch/certs/
加到crontab每月自动运行:
```bash0 */12 * * * /path/to/renew_script.sh >> /var/log/le-renew.log```
Nginx反向代理场景下的SSL卸载
很多用户会用Nginx做前端代理,此时可以:
方案A:Nginx和FS都启用SSL
方案B:Nginx处理SSL后明文传给FS(更推荐)
Nginx配置示例:
location /ws {
proxy_pass http://localhost:5066;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
SSL性能优化参数调优
在`sip_profiles/internal.xml`中添加这些参数提升性能:
```xml
这样配置后你的FreeSWITCH既能保证安全又不会降低性能。
希望这篇指南能帮你彻底搞定FreeSWITCH的SSL配置!如果有任何问题欢迎留言讨论。
TAG:freeswtich ssl 证书 配置,centos 证书登陆,centos ssl证书,centos 生成 https 证书,centos7证书服务器,centos7安装ssl证书,centos证书登录,centos自签证书,centos信任根证书,centos authorization not available