Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
785 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Installation

  [NextCloud] Problème avec Collabora Online et reverse proxy

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[NextCloud] Problème avec Collabora Online et reverse proxy

n°1484641
Arjuna
Aircraft Ident.: F-MBSD
Posté le 13-06-2023 à 22:18:21  profilanswer
 

Bonjour,
 
Je dispose de deux machines :
 
192.168.0.5 > C'est ma DMZ, dessus il y a un Apache2 qui fait office de reverse proxy SSL
192.168.0.35 > C'est mon serveur de documents. Dessus j'ai installé NextCloud et je suis en train d'essayer de faire marcher Collabora Online avec NextCloud Office
 
Ca fait des mois que mon NextCloud fonctionne correctement avec cette configuration :
 
Sur le reverse proxy :
 
 
Pour le HTTPS :


<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerName cloud.domain.com
    ServerAlias cloud.domain.com
    ServerAdmin administrateur@domain.com
 
    ProxyPreserveHost On
    ProxyPass "/"  "http://192.168.0.35/"
    ProxyPassReverse "/"  "http://192.168.0.35/"
 
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/cloud.domain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/cloud.domain.com/privkey.pem
 
 
 
    <IfModule mod_rewrite.c>
        RewriteEngine On
            RewriteRule ^/\.well-known/carddav https://%{SERVER_NAME}/remote.php/dav/ [R=301,L]
            RewriteRule ^/\.well-known/caldav https://%{SERVER_NAME}/remote.php/dav/ [R=301,L]
    </IfModule>
 
</VirtualHost>
</IfModule>
<IfModule mod_ssl.c>
<VirtualHost *:80>
    ServerName cloud.domain.com
    ServerAlias cloud.domain.com
    ServerAdmin administrateur@domain.com
 
    ProxyPreserveHost On
    ProxyPass "/"  "http://192.168.0.35/"
    ProxyPassReverse "/"  "http://192.168.0.35/"
 
</VirtualHost>
</IfModule>


 
Et le HTTP :


<VirtualHost *:80>
    ServerName cloud.domain.com
    ServerAlias cloud.domain.com
    ServerAdmin administrateur@domain.com
 
    ProxyPreserveHost On
    ProxyPass "/"  "http://192.168.0.35/"
    ProxyPassReverse "/"  "http://192.168.0.35/"
RewriteEngine on
RewriteCond %{SERVER_NAME} =cloud.domain.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>


 
Et côté serveur de fichier :
 
Le site en HTTP uniquement :


<VirtualHost *:80>
  DocumentRoot /var/www/nextcloud/
  ServerName cloud.domain.com
 
  <Directory /var/www/nextcloud/>
    Require all granted
    AllowOverride All
    Options FollowSymLinks MultiViews
 
    <IfModule mod_dav.c>
      Dav off
    </IfModule>
 
  </Directory>
</VirtualHost>


 
Mais là, avec Collabora Online c'est le drame.
 
Déjà, lorsque je tente d'aller dans la configuration, ça me dit :

Citation :

Enregistré avec erreur : Collabora Online devrait exposer le même protocole que l'installation du serveur. Veuillez vérifier les paramètres ssl.enable et ssl.termination de votre serveur Collabora Online.


=> Ouais c'est cool, mais ça me dit pas où je peux modifier ces deux paramètres ssl.enable et ssl.termination...
 
Et quand j'ouvre un document Word depuis NextCloud, j'ai ça dans la console du navigateur :


Refused to connect to 'http://cloud.domain.com/apps/richdocumentscode/proxy.php?status' because it violates the following Content Security Policy directive: "connect-src 'self'".
Mixed Content: The page at 'https://cloud.domain.com/index.php/apps/files/?dir=/Documents/Astronomie&openfile=6952' was loaded over HTTPS, but requested an insecure form action 'http://cloud.domain.com/apps/richdocumentscode/proxy.php?req=/browser/b6cb979/cool.html?WOPISrc=https%3A%2F%2Fcloud.domain.com%2Findex.php%2Fapps%2Frichdocuments%2Fwopi%2Ffiles%2F6952_oc9h52zn9xnc&title=POURQUOI%20LES%20PLAN%C3%88TES%20DU%20SYST%C3%88ME%20SOLAIRE%20SONT%20SUR%20LE%20M%C3%8AME%20PLAN.docx&lang=fr&closebutton=1&revisionhistory=1'. This request has been blocked; the content must be served over HTTPS.


 
Ok, j'ai bien compris : NextCloud est installé en pur HTTP, donc Collabora Online croit qu'il peut communiquer avec le serveur en HTTP, sauf qu'au milieu il y a le reverse proxy qui fait qu'on parle en fait en HTTPS... Et paf ça fait des chocapics...
 
J'avais déjà eu cette erreur avec OwnCloud il y a quelques années (même architecture, mais tout sur le même serveur) sauf qu'il y avait une case à coché dans un coin des pages d'administration pour forcer à générer les liens en HTTPS même si le fichier de config ne parlait pas de SSL.
Pour NextCloud, pas de case à cocher. J'ai trouvé un paramètre dans le config.php qui est déjà à "true" :


  'overwrite.cli.url' => 'https://cloud.domain.com',
  'overwriteprotocol' => 'https',


 
Comment faire la même config pour Collabora Online ?

mood
Publicité
Posté le 13-06-2023 à 22:18:21  profilanswer
 

n°1484642
Arjuna
Aircraft Ident.: F-MBSD
Posté le 13-06-2023 à 22:30:19  profilanswer
 

Je viens (enfin) de trouver le fichier de configuration de Collabora Online :
/etc/coolwsd/coolwsd.xml

 

J'ai bien passé à true ssl.enable et ssl.termination mais j'ai toujours les mêmes erreurs :(

 

Pourtant Stackoverflow propose bien la même chose...
https://stackoverflow.com/questions [...] 7#68239517


Message édité par Arjuna le 13-06-2023 à 22:49:53
n°1484644
Arjuna
Aircraft Ident.: F-MBSD
Posté le 13-06-2023 à 23:25:44  profilanswer
 

Super...
C'est un bug connu... depuis quelques années déjà...

 

https://github.com/CollaboraOnline/ [...] e/issues/2


Message édité par Arjuna le 14-06-2023 à 00:08:12
n°1484647
Arjuna
Aircraft Ident.: F-MBSD
Posté le 13-06-2023 à 23:59:07  profilanswer
 

Bon, c'est franchement incompréhensible...

 

J'ai modifié mon reverse proxy pour ajouter des headers :


RequestHeader set X-Forwarded-Proto https
RequestHeader set X-Forwarded-SSL on

 

J'ai modifié le .htaccess à la racine de NextCould pour forcer la variable d'environement HTTPS


SetEnv HTTPS on

 

Et pourtant le proxy.php fait toujours n'importe quoi :


// URL into this server of the proxy script.
if ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off')
        || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https' )
        || (isset($_SERVER['HTTP_X_FORWARDED_SSL']) && $_SERVER['HTTP_X_FORWARDED_SSL'] === 'on')
) {
    $proxyURL = "https://";
} else {
    $proxyURL = "http://";
}

 

Même si je modifie pour forcer $proxyURL à "https://" ça ne marche toujours pas.
A se demander s'il n'y a pas un "http" qui traine quelque part en dur...

 

Pffff, c'est assez consternant...


Message édité par Arjuna le 14-06-2023 à 00:03:41
n°1484648
Arjuna
Aircraft Ident.: F-MBSD
Posté le 14-06-2023 à 00:37:24  profilanswer
 

Super.
J'ai pourtant redémarré plusieurs fois les services (apache, coolwsd, même les VM entières), vidé le cache de mon navigateur...
 
Je mets à jour le ticket sur github avec mes infos, puis, dépité, je relance un coup avant d'aller me coucher et miracle, ça marche ! :pt1cable:
 
Bon, ben parmis les 25 trucs que j'ai tenté qui sont décrits ci-dessus y'a la solution si quelqu'un tombe sur le même problème... :spamafote:

n°1485023
LaMoR
Metal up your ass
Posté le 28-06-2023 à 18:40:36  profilanswer
 

Hello,

 

je pense avoir un probleme similaire.

 

J'avais fait un essai en fevrier sans succes : https://forum.hardware.fr/forum2.ph [...] w=0&nojs=0

 

et la je repart d'une fresh install avec Nexcloud 27 et collabora build in + nextcloud office

 

Quand je passe par mon domaine et donc mon reverse proxy, nexcloud fonctionne bien, mais pas collabora, quand je veux ouvrir un document j'ai l'erreur veuillez reessayer plus tard.

 

Quand je passe en direct, quand je suis en local donc avec l'ip du serveur locale tout fonctionne bien.

 

J'ai testé pas mal de choses, mais je ne suis pas spécialiste et donc je n'y arrive vraimetn pas.


Message édité par LaMoR le 29-06-2023 à 15:36:03
n°1485035
LaMoR
Metal up your ass
Posté le 29-06-2023 à 12:07:37  profilanswer
 

Hello,
 
J'avance un peu, j'avais la meme erreur :  
 

Citation :

Enregistré avec erreur : Collabora Online devrait exposer le même protocole que l'installation du serveur. Veuillez vérifier les paramètres ssl.enable et ssl.termination de votre serveur Collabora Online.


 
 
 
J'ai ajouté la ligne :  
 

proxy_set_header X-Forwarded-Proto https;


 
dans la conf de mon reverse proxy qui est sous nginx.
 
Je n'ai maintenant plus cette erreur ssl.
 
Donc a priori c'est ce point qui a du résoudre ton soucis !
 
 
Par contre, de mon coté, l'ouverture des documents ne fonctionne toujours pas ....


Message édité par LaMoR le 29-06-2023 à 15:35:43
n°1485055
LaMoR
Metal up your ass
Posté le 30-06-2023 à 15:01:30  profilanswer
 

Bordel j'ai enfin réussi !!!

 

Voici la solution :

 

J'ai découvert (je ne sais plus exactement comment) que le serveur collabora est disponible sur le port 9983 (http://[IPserver]:9983) (du même server puisque l'on active le buildin code).

 

J'ai donc ajouté le bloc suivant dans la conf de mon reverse proxy :


    location / {
        proxy_set_header X-Forwarded-Host $http_host;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
        proxy_pass http://[IPserver]:9983/;
    }

 

En plus de celle qui existait déjà :

 


    location /nextcloud {
        proxy_set_header X-Forwarded-Host $http_host;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
        proxy_pass http://[IPserver]/nextcloud/;
    }

 

Et ca fonctionne !!

 

Je me suis aidé de ca :
https://help.nextcloud.com/t/nextcl [...] ion/151879

 

Notamment de la phrase qui indique que le résultat du lien d’accès à collabora :https://localcollabora/hosting/discovery

 

doit avoir comme résultat un XML qui :

 

review the content of the XML document reflect the right public hostname

 

Pour que ce soit le cas, comme je passe par un reverse proxy il fallait ajouter cette "redirection"

 

Message cité 1 fois
Message édité par LaMoR le 30-06-2023 à 16:06:28
n°1485058
Trit'
Posté le 30-06-2023 à 15:44:33  profilanswer
 

LaMoR a écrit :

Notamment de la phrase qui indique que le résultat du lien d’accès à collabora : https://collabora/hosting/discovery


Attention : tu as oublié de mettre une espace avant l’URL (et de mettre la balise du même nom, l’auto-formatage pouvant foirer les liens).

n°1485059
LaMoR
Metal up your ass
Posté le 30-06-2023 à 16:06:57  profilanswer
 

Trit' a écrit :


Attention : tu as oublié de mettre une espace avant l’URL (et de mettre la balise du même nom, l’auto-formatage pouvant foirer les liens).


 
En fait c'est plutot fait expres car ce lien ne fonctionne que sur la machine ou est installé le serveur

mood
Publicité
Posté le 30-06-2023 à 16:06:57  profilanswer
 

n°1485060
Trit'
Posté le 30-06-2023 à 16:31:40  profilanswer
 

LaMoR a écrit :

En fait c'est plutot fait expres car ce lien ne fonctionne que sur la machine ou est installé le serveur


Tu aurais pu le préciser (j’avais pas vu qu’il n’y avait pas de TLD), et j’aurais alors conseillé de mettre plutôt des espaces dans l’URL, comme ça :
 
https ://collabora/hosting/discovery


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Installation

  [NextCloud] Problème avec Collabora Online et reverse proxy

 

Sujets relatifs
interface openmediavault problème affichageProblème serveur VNC (x11vnc, tightvnc) pour Ubuntu 20.04
problème clavier sur HP pavilion et Debian 11Nextcloud avec collabora built-in derriere un reverse proxy
Problème de connexion bureau à distance sur Linux via xRDP et LDAPproblème DNS netplan et resolv.conf
Samba 4 & W10 : problème accès simultané 
Plus de sujets relatifs à : [NextCloud] Problème avec Collabora Online et reverse proxy


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR