由于最近在了解sip通话相关, 所以想在本地搭建一个环境, 方便学习
一. 介绍
1. freeswitch介绍
官网: freeswitch.com FreeSWITCH 是一个开源的电话交换平台,它具有很强的可伸缩性–从一个简单的软电话客户端到运营商级的软交换设备几乎无所不能。能原生地运行于Windows、Max OS X、Linux、BSD 及 solaris 等诸多32/64位平台。
2. sipjs介绍
官网: jssip.net 在页面进行sip通信的库
二. 配置
1. windows安装freeswitch
在Index of /windows/installer/x64 (freeswitch.org) 下载对应的版本进行双击安装
2. 配置证书
1)、生成CA根证书
生成 CA 私钥:
openssl genrsa -out ca.key 1024
因为是自签名,省略生成 证书签名请求csr 的过程,直接执行以下命令生成CA证书:
openssl req -new -x509 -days 365 -key ca.key -out ca.crt
注:-days 365 指定有效期, 查看证书有效期:`openssl x509 -in ca.crt -noout -dates``
2) 每个证书持有人(Client、Server)都有一对公钥、私钥
a. Server端
(1)生成 服务器端 私钥:openssl genrsa -out server.key 1024
b. Client端
(1)生成 客户端 私钥:openssl genrsa -out client.key 1024
(2)生成 携带密码的客户端 私钥,用-des3加密:openssl genrsa -des3 -out client.key 1024
注:生成私钥可以指定私钥密码
3) 使用自签名的CA根证书签发Client、Server的数字证书
a. Server端
(1)向 CA 机构申请签名证书,在申请签名证书之前依然是创建自己的 CSR(证书签名请求) 文件:
openssl req -new -key server.key -out server.csr -days 365
(2)向自己的 CA 机构申请证书,签名过程需要 CA 的证书和私钥参与,最终颁发一个带有 CA 签名的数字证书:
openssl x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -out server.crt -days 365
b. Client端
(1)生成证书签名请求client.csr:openssl req -new -key client.key -out client.csr -days 365
(2)对上一步的 证书签名请求 进行签名,颁发一个带有CA签名的数字证书:
openssl x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in client.csr -out client.crt -days 365
4) 生成自定义证书(证书+私钥 格式)
cat ca.crt ca.key > cafile.pem
cat server.crt server.key > agent.pem
cat client.crt client.key > client.pem