Skip to main content

Jitsi

Introduction

Jitsi est application libre multiplateforme de messagerie instantanée, voix sur IP et visioconférence. Les conférences sont sécurisées et chiffrées. Le logiciel est intégré à la liste des logiciels libres préconisés par l’État français dans le cadre de la modernisation globale de ses systèmes d’informations. Jitsi est disponible sur navigateur web, Android et iOS. On peut l’installer dans le cloud ou sur une machine comme Linux.

image-1616160916824.png

Jitsi est très utilisé en ce moment en tant qu’alternative à Microsoft Teams ou Skype Business. Le fait que Jitsi soit gratuit et open-source est très avantageux. On peut même ajouter des plugins à Jitsi et il est customisable.

 

image-1616160932619.png

Développement

 

Personnellement, j’ai un nom de domaine enregistré chez OVH (khroners.fr). Je vais donc utiliser ce domaine avec un sous-domaine jitsimeet.

Préparation de la machine virtuelle

 

image-1616160958008.png

La carte réseau est en bridge.

 

On met ensuite le serveur à jour.

apt update && upgrade -y

Installation du serveur web Nginx et du serveur Jitsi

On installe ensuite nginx, un serveur web.

apt-get -y install nginx

On ajoute la clé publique de jitsi, le dépôt et on installe.

wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | sudo apt-key add –
sudo sh -c "echo 'deb https://download.jitsi.org stable/' > /etc/apt/sources.list.d/jitsi-stable.list"
sudo apt-get -y update
sudo apt-get -y install jitsi-meet

Arrivé à cette fenêtre, on rentre le domaine complet, dans mon cas jitsimeet.khroners.fr.

image-1616161833521.png

image-1616161839687.png

On choisit ici la seconde option « I want to use my own certificate ».

On presse « Entrée » pour les deux autres propositions.

On peut voir le statut de jitsi-videobridge en rentrant la commande :

service jitsi-videobridge2 status

image-1616161855633.png

Idem pour nginx :

service nginx status

image-1616161859449.png

Puisque le serveur Jitsi est derrière un NAT, on rajoute ces deux options dans le fichier /etc/jitsi/videobridge/sip-communicator.properties.

nano /etc/jitsi/videobridge/sip-communicator.properties

Puis on insère ces deux lignes :

org.ice4j.ice.harvest.DISABLE_AWS_HARVESTER=true

org.ice4j.ice.harvest.STUN_MAPPING_HARVESTER_ADDRESSES=meet-jit-si-turnrelay.jitsi.net:443

Ces deux lignes vont permettre à Jitsi de récupérer l’adresse IP publique.

Création du certificat

 

On installe ensuite Certbot afin d’avoir un certificat valide.

On ajoute aux dépôts, on télécharge puis on installe :

add-apt-repository ppa:certbot/certbot
apt-get update
apt-get install letsencrypt -y
wget https://dl.eff.org/certbot-auto -P /usr/local/bin
chmod a+x /usr/local/bin/certbot-auto
export DOMAIN="jitsi.khroners.fr"
export EMAIL_ALERT=admin@khroners.fr

 

La commande chmod permet l’attribution de droits.

Pour les deux commandes export, on rentre le domaine complet et une adresse e-mail.

Pour mon domaine, je dois rentrer un enregistrement DNS, qui va pointer le FQDN « jitsee.khroners.fr » vers « khroners.fr. ».

image-1616161903555.png

On doit également ouvrir les ports et les rediriger vers la machine virtuelle Ubuntu avec le NAT. Dans mon cas sur une Livebox Orange :

image-1616161907917.png

Ici les ports 80 et 443 sont ouverts en direction de la machine virtuelle. Ces deux ports correspondent au protocole HTTP et HTTPS.

On ouvre également les ports 10000-20000 en UDP pour l’audio.

On peut ensuite rentrer cette commande qui va permettre la demande et la création du certificat TLS Let’s Encrypt.

/usr/local/bin/certbot-auto certonly --standalone -d $DOMAIN  --preferred-challenges http --agree-tos -n -m  $EMAIL_ALERT --keep-until-expiring

image-1616161933146.png

Le certificat est créé.

 Le certificat est situé dans :

/etc/letsencrypt/live/jitsimeet.khroners.fr/fullchain.pem

La clé est située dans :

/etc/letsencrypt/live/jitsimeet.khroners.fr/privkey.pem

Modification de la configuration de nginx pour appliquer le certificat

 

On doit donc changer le chemin du certificat et de la clé dans le fichier config de nginx du site jitsi.

nano /etc/nginx/sites-available/jitsimeet.khroners.fr.conf

On modifie les lignes ssl_certificate et ssl_certificate_key.

image-1616161949002.png

On redémarre le serveur nginx.

service nginx restart

En cas d’erreur lors du redémarrage de nginx

image-1616162260631.png

lsof -iTCP -sTCP:LISTEN

Avec cette commande, on peut voir les processus utilisants les différents ports. Cependant, ici, aucun n’utilise ce port 443.

Une erreur est connu (https://community.jitsi.org/t/nginx-coturn-port-443/27820 , https://community.jitsi.org/t/bind-to-0-0-0-0-443-failed/28615) en ce moment depuis la dernière version stable de Jitsi. Un fichier rentre en conflit avec nginx, ne permettant pas à nginx d’écouter le port 443 (HTTPS). Il faut donc supprimer ce fichier.

On copie le fichier avant la suppression puis on le supprime.

cp /etc/nginx/modules-enabled/60-jitsi-meet.conf /home/user
rm /etc/nginx/modules-enabled/60-jitsi-meet.conf

On redémarre le serveur web.

service nginx restart

Accès à Jitsi, vérification du certificat & différents tests

Accès à Jitsi

 

Jitsi est désormais accessible via l’adresse https://jitsimeet.khroners.fr/

Via le domaine en HTTP :

image-1616162340226.png

Via l’adresse IP locale en HTTP :

image-1616162343887.png

 

En HTTPS sur l’adresse IP locale du serveur Jitsi :

image-1616162349919.png

En HTTPS sur le domaine :

image-1616162354718.png

Vérification du certificat

Le certificat valide :

image-1616162376770.png

image-1616162380693.png

Tests

 

Voici un test entre deux utilisateurs en local :

image-1616162390155.png

A gauche, l’utilisateur avec l’avatar K et à droite l’utilisateur avec l’avatar A.

Test entre deux utilisateurs mobiles en 4G :

image-1616162396721.png

Test entre un ordinateur et un téléphone :

image-1616162403092.png

Deuxième test entre un ordinateur et un téléphone (capture d’écran depuis l’autre utilisateur) :

image-1616162409375.png

Conclusion

Jitsi est opérationnel. On peut alors faire des visioconférences à plusieurs, sécurisées via l’HTTPS et chiffrées. Cet outil étant gratuit est parfait pour les petites entreprises et disponible sur de nombreux appareils différents : Smartphones, tablettes, PC, Mac…

image-1616162438687.png