加密通信软件Signal-Server 3.21版本编译安装折腾手记(Ubuntu 20.04.2 LTS)

本文主要是介绍加密通信软件Signal-Server 3.21版本编译安装折腾手记(Ubuntu 20.04.2 LTS),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

加密通信软件Signal是开源的,安全性很高,号称斯诺登也推荐大家使用。

编译

言归正传,继续说Signal服务端。首先,Signal Server目前的代码是2.92版本,既然有工程文件pom.xml,那就用Maven编译好了。仓库地址是https://github.com/signalapp/Signal-Server/。

mvn install -DskipTests

编译这个版本的代码需要用JDK 11+,如果用低版本的JDK(比如Ubuntu 16.04中的),Maven会报一个和数字11有关的错误,如果不熟悉的话,这个看似莫名其妙的错误信息可能会让你挠头半天,算一个坑。编译的最终产物是TextSecureServer-3.21.jar。

寻找别人的安装经验指南

编译好了,接下来要部署了。先谷歌一下关键字Signal Sever + Install/Deploy,引用最多的是一篇1.88版本的安装指南:《Signal Server Installation Guide》。猜测这位同学可能是要用这个帖子做导流来收取一些咨询费的,所以没写那么细。但在没有官方文档的情况下,这个指南也是一个很好的开始了(此处掌声致谢),只能先按这个搞。

配置的总入口:模板文件sample.yml

把Signal Server代码仓库中的配置模板文件sample.yaml拿出来,改名为config.yml,按上面这个指南配置,会发现3.21 的配置项有了一些变化。后面的事实会证明,代码仓库中的这个yml模板,是很老的版本,和代码根本不匹配,照这个配几乎无用。

第三方接口的帐号申请

先搜罗一下yml中需要申请的第三方接口的帐号,挨个申请。
要申请的帐号清单:

  • Twilio           用于短信等功能。messagingServicesId的申请页面和account的页面不在一起,万一没找到,messagingServicesId先填个假的。
  • S3               亚马逊S3,用于图床CDN、聊天的附件等。
  • SQS             亚马逊SQS,消息队列。
  • reCAPTCHA  谷歌reCAPTCHA,用于识别机器人。
  • GCM            谷歌推送服务。谷歌早已从GCM切换到FCM,无法再申请到GCM帐号。试了一下用谷歌FCM的帐号填写在那里也没报错,但没实际测试对安卓手机的推送功能是否正常。
  • APN             苹果推送服务。

配置服务器的域名

没有域名的话,买一个。HTTPS/WSS(WebSocket Secure)服务都是需要校验域名对应的证书的,Twilio服务的反向连接也需要配置域名。

安装Redis

sudo apt-get install -y redis-server

 修改配置文件:

sudo vi /etc/redis/redis.conf

重启Redis:

sudo systemctl restart redis.service

安装PostgreSQL

安装数据库软件,创建数据库,创建帐号:

sudo apt-get install postgresql postgresql-contrib -y
sudo -u postgres psql -c "CREATE DATABASE accountsdb"
sudo -u postgres psql -c "CREATE DATABASE messagedb"
sudo -u postgres psql -c "CREATE DATABASE abusedb"
sudo -u postgres psql -c "CREATE DATABASE readdb"
sudo -u postgres psql -c "CREATE USER signal \
WITH ENCRYPTED PASSWORD 'password'"

修改数据库配置:

sudo vi /etc/postgresql/13/main/postgresql.conf

1、将 listen_addresses='localhost'  改为  listen_addresses='*'

2、启用数据库的密码认证。尾部追加一行,内容为:
     host all all 0.0.0.0/0 md5

重启数据库:

sudo systemctl restart postgresql
安装coturn---webrtc协议的一个实时语音聊天

开启防火墙tcp和udp的3478端口,udp也要开。

安装

apt-get install libevent-dev

apt-get install libevent2

下载安装github上的coturn

https://github.com/coturn/coturn

安装coturn并生成证书:

openssl req -x509 -newkey rsa:2048 -keyout /etc/turn_server_pkey.pem -out /etc/turn_server_cert.pem -days 99999 -nodes 

编辑配置文件:

sudo vi /etc/turnserver.conf

配置下面的字段:

$ sudo find / -name ssl-dhparams.pem
/usr/lib/python3/dist-packages/certbot/ssl-dhparams.pem
listening-ip=
external-ip=
use-auth-secret
static-auth-secret=
user=user1:password1
realm=服务器的完整域名
cert=/etc/turn_server_cert.pem
pkey=/etc/turn_server_pkey.pem
cli-password=
dh-file=/usr/lib/python3/dist-packages/certbot/ssl-dhparams.pem

配置好之后,启动

turnserver  -a -f -user=zjf:123456 -r www.lxrtalk.com 

然后用下面的页面测试coturn的基本功能:

https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/

注意:coturn有两套认证机制,一套是用户名、密码的,一套是共享密钥(secret)。其中共享密钥是给REST接口使用的,Signal Server要用到共享密钥。而测试coturn基本功能时使用的页面只支持用户名+密码的认证方式,而且coturn是优先使用共享密钥的,也就是说如果同时配了共享密钥、用户名+密码的话,在上面这个测试页面中是测试不过的。所以要先禁用共享密钥的设置,等在上面的这个页面中测试通过后,再把共享密钥的配置恢复。

配置好共享密钥后,启动daemon:

<

这篇关于加密通信软件Signal-Server 3.21版本编译安装折腾手记(Ubuntu 20.04.2 LTS)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/196458

相关文章

java使用protobuf-maven-plugin的插件编译proto文件详解

《java使用protobuf-maven-plugin的插件编译proto文件详解》:本文主要介绍java使用protobuf-maven-plugin的插件编译proto文件,具有很好的参考价... 目录protobuf文件作为数据传输和存储的协议主要介绍在Java使用maven编译proto文件的插件

如何在Ubuntu 24.04上部署Zabbix 7.0对服务器进行监控

《如何在Ubuntu24.04上部署Zabbix7.0对服务器进行监控》在Ubuntu24.04上部署Zabbix7.0监控阿里云ECS服务器,需配置MariaDB数据库、开放10050/1005... 目录软硬件信息部署步骤步骤 1:安装并配置mariadb步骤 2:安装Zabbix 7.0 Server

Ubuntu如何分配​​未使用的空间

《Ubuntu如何分配​​未使用的空间》Ubuntu磁盘空间不足,实际未分配空间8.2G因LVM卷组名称格式差异(双破折号误写)导致无法扩展,确认正确卷组名后,使用lvextend和resize2fs... 目录1:原因2:操作3:报错5:解决问题:确认卷组名称​6:再次操作7:验证扩展是否成功8:问题已解

SpringBoot中SM2公钥加密、私钥解密的实现示例详解

《SpringBoot中SM2公钥加密、私钥解密的实现示例详解》本文介绍了如何在SpringBoot项目中实现SM2公钥加密和私钥解密的功能,通过使用Hutool库和BouncyCastle依赖,简化... 目录一、前言1、加密信息(示例)2、加密结果(示例)二、实现代码1、yml文件配置2、创建SM2工具

SQL Server配置管理器无法打开的四种解决方法

《SQLServer配置管理器无法打开的四种解决方法》本文总结了SQLServer配置管理器无法打开的四种解决方法,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录方法一:桌面图标进入方法二:运行窗口进入检查版本号对照表php方法三:查找文件路径方法四:检查 S

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

python实现对数据公钥加密与私钥解密

《python实现对数据公钥加密与私钥解密》这篇文章主要为大家详细介绍了如何使用python实现对数据公钥加密与私钥解密,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录公钥私钥的生成使用公钥加密使用私钥解密公钥私钥的生成这一部分,使用python生成公钥与私钥,然后保存在两个文

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

MySQL MCP 服务器安装配置最佳实践

《MySQLMCP服务器安装配置最佳实践》本文介绍MySQLMCP服务器的安装配置方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下... 目录mysql MCP 服务器安装配置指南简介功能特点安装方法数据库配置使用MCP Inspector进行调试开发指