[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Jitsi sur serveur debian/testing



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


Reply to: