- signal docs
- youtube about Introduction to Signal Private Messenger
- Markus Vervier - Hunting for Vulnerabilities in Signal pdf
- youtube about TextSecure Protocol
- Signal Server Installation Guide
To be sure to have the latest version of the programmes.
$ sudo apt-get update
$ sudo add-apt-repository ppa:webupd8team/java
$ apt-get update
$ sudo apt-get install oracle-java8-installer
$ sudo apt-get install oracle-java8-set-default
$ sudo apt-get install -y redis-server
$ sudo apt-get install postgresql postgresql-contrib -y
$ sudo -u postgres psql
postgres=# alter user postgres password 'pwd123';
$ psql -U postgres -h localhost
Password for user postgres:
postgres=# create database abusedb owner postgres;
postgres=# create database accountdb owner postgres;
postgres=# create database messagedb owner postgres;
$ git clone https://github.com/ericfjl/Signal-Server.git
$ cd Signal-server
$ mvn install -DskipTests
$ java -jar target/TextSecureServer-2.26.jar abusedb migrate config/signal_local.yml
$ java -jar target/TextSecureServer-2.26.jar accountdb migrate config/signal_local.yml
$ java -jar target/TextSecureServer-2.26.jar messagedb migrate config/signal_local.yml
$ apt-get install coturn
config :
编辑配置文件turnserver.conf:(只需启用和修改下面几项)
external-ip=54.249.95.226/172.31.43.68 (前者为服务器公网ip,后者为内网IP)
fingerprint (开启指纹)
lt-cred-mech (开启长期验证机制)
use-auth-secret (开启secret形式授权 )
static-auth-secret=12345(# 设置secret,这个和signal服务配置文件里的turnserver的secret要一致,最好复杂点,注意最后别留空格)
signal 服务器配置文件中的相关配置:
turn: # TURN server configuration
secret: 12345 # TURN server secret
uris:
- stun:54.249.95.226:3478
- stun:54.249.95.226:5349 # 5349是tls的,相当于443
- turn:54.249.95.226:3478?transport=udp
- turn:54.249.95.226:5349?transport=udp
$ java -jar target/TextSecureServer-2.26.jar server config/signal_local.yml
fix signalapp/Signal-Server 's bugs
fix bug(can't run for Certificate)org.whispersystems.textsecuregcm.storage.DirectoryReconciliationClient)
// PEMReader reader = new PEMReader(new InputStreamReader(new ByteArrayInputStream(caCertificatePem.getBytes())));
final Reader filereader = new FileReader(caCertificatePem);
final PEMReader reader = new PEMReader(filereader);
fix bug(package javax.xml.bind.annotation.adapters does not exist) pom.xml stackoverflow
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-core</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.3.0</version>
</dependency>
Copyright 2019-2019 Open Whisper Systems
Licensed under the AGPLv3: https://www.gnu.org/licenses/agpl-3.0.html