NoSpam a écrit :
Le 11/04/2020 à 14:49, BERTRAND Joël a écrit :
Bonjour à tous,
J'essaie d'installer jitsi sur l'un de mes serveurs et je sèche. J'ai
besoin d'une authentification (je ne veux pas que n'importe qui puisse
faire n'importe quoi sur un serveur accessible sur internet).
J'ai donc installé les paquets suivants :
- jicofo
- jitsi-meet
- jitsi-meet-prosody
- jitsi-meet-web
- jitsi-meet-web-config
- jitsi-videobridge
et configuré apache en conséquence pour qu'il réponde sur
https://jitsi.systella.fr
Alors attention, le port 443 est réservé par jitsi (dans nginx,
paragraphe stream) pour proxy_pass, Jitsi écoute le 4444
As tu suivi leur tuto ?
https://github.com/jitsi/jicofo/blob/master/README.md#secure-domain
La réponse est oui ;-)
Mais je vais reprendre point par point le howto en question.
J'ai donc créé un fichier /etc/prosody/conf.d/jitsi.systella.fr.cfg.lua
qui contient :
VirtualHost "jitsi.systella.fr"
-- enabled = false -- Remove this line to enable this host
authentication = "internal_plain"
ssl = {
key = "/etc/prosody/certs/jitsi.systella.fr.key";
certificate = "/etc/prosody/certs/jitsi.systella.fr.crt";
}
-- we need bosh
modules_enabled = {
"bosh";
"pubsub";
"ping"; -- Enable mod_ping
}
c2s_require_encryption = false
Component "conference.jitsi.systella.fr" "muc"
storage = "memory"
--modules_enabled = { "token_verification" }
admins = { "focus@auth.jitsi.systella.fr" }
Component "jitsi-videobridge.jitsi.systella.fr"
component_secret = "xxxxxxx"
VirtualHost "auth.jitsi.systella.fr"
ssl = {
key = "/etc/prosody/certs/auth.jitsi.systella.fr.key";
certificate = "/etc/prosody/certs/auth.jitsi.systella.fr.crt";
}
authentication = "internal_plain"
Component "focus.jitsi.systella.fr"
component_secret = "xxxxxxxx"
L'utilisateur focus@auth.jitsi.systella.fr existe (avec le bon mot de
passe, j'ai vérifié) puisque je trouve son mot de passe dans le fichier
/var/lib/prosody/auth%2ejitsi%2esystella%2efr/accounts/focus.dat
Dans /etc/apache2/sites-enabled, j'ai un fichier jitsi.systella.fr.conf
de configuration d'apache2:
<VirtualHost *:80>
ServerName jitsi.systella.fr
Redirect permanent / https://jitsi.systella.fr/
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</VirtualHost>
<VirtualHost *:443>
ServerName jitsi.systella.fr
SSLProtocol TLSv1 TLSv1.1 TLSv1.2
SSLEngine on
SSLProxyEngine on
SSLCertificateFile /etc/letsencrypt/live/systella.fr/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/systella.fr/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/systella.fr/chain.pem
SSLCipherSuite
"EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA256:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EDH+aRSA+AESGCM:EDH+aRSA+SHA256:EDH+aRSA:EECDH:!aNULL:!eNULL:!MEDIUM:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4:!SEED"
SSLHonorCipherOrder on
Header set Strict-Transport-Security "max-age=31536000"
DocumentRoot "/usr/share/jitsi-meet"
<Directory "/usr/share/jitsi-meet">
Options Indexes MultiViews Includes FollowSymLinks
AddOutputFilter Includes html
AllowOverride All
Order allow,deny
Allow from all
</Directory>
ErrorDocument 404 /static/404.html
Alias "/config.js" "/etc/jitsi/meet/jitsi.systella.fr-config.js"
<Location /config.js>
Require all granted
</Location>
Alias "/external_api.js" "/usr/share/jitsi-meet/libs/external_api.min.js"
<Location /external_api.js>
Require all granted
</Location>
ProxyPreserveHost on
ProxyPass /http-bind http://localhost:5280/http-bind/
ProxyPassReverse /http-bind http://localhost:5280/http-bind/
RewriteEngine on
RewriteRule ^/([a-zA-Z0-9]+)$ /index.html
</VirtualHost>
Le fichier de configuration
(/etc/jitsi/meet/jitsi.systella.fr-config.js) contient quant à lui :
var config = {
hosts: {
domain: 'jitsi.systella.fr',
muc: 'conference.jitsi.systella.fr'
},
bosh: '//jitsi.systella.fr/http-bind',
clientNode: 'http://jitsi.org/jitsimeet',
testing: {
enableFirefoxSimulcast: false,
p2pTestMode: false
},
desktopSharingChromeExtId: null,
desktopSharingChromeSources: [ 'screen', 'window', 'tab' ],
desktopSharingChromeMinExtVersion: '0.1',
channelLastN: -1,
enableWelcomePage: true,
enableUserRolesBasedOnToken: false,
p2p: {
enabled: true,
stunServers: [
{ urls: 'stun:stun.l.google.com:19302' },
{ urls: 'stun:stun1.l.google.com:19302' },
{ urls: 'stun:stun2.l.google.com:19302' }
],
preferH264: true
},
analytics: {
},
deploymentInfo: {
}
};
Jicofo tourne :
/usr/lib/jvm/java-8-openjdk-amd64/bin/java ... org.jitsi.jicofo.Main
--host=localhost --domain=jitsi.systella.fr --port=5347 --secret=xxxxx
--user_name=focus --user_domain=auth.jitsi.systella.fr --user_password=yyyy
Le secret de la ligne de commande correspond au component_secret indiqué
pour focus.jitsi.systella.fr dans la conf de prosody.
Lorsque je regarde la section 'secure domain' du howto. J'ai bien dans
le fichier de conf de prosody :
VirtualHost "jitsi.systella.fr"
authentication = "internal_plain"
Je n'ai pas créé de "guest.jitsi-meet.systella.fr" parce que je désire
que tous les utilisateurs soient authentifiés. Un peu plus loin, je
constate qu'il faudrait
-Dorg.jitsi.jicofo.auth.URL=XMPP:jitsi-meet.systella.fr dans la ligne de
commande de jicofo, ce que je n'ai pas. Je lance jicofo à la main avec
cette option, le résultat est le même. Par acquis de conscience, je
rajoute cette option à la variable JICOFO_OPTS du fichier de config.
Rien n'y fait.
Et là, je sèche...
Toute idée sera la bienvenue.
JKB