Exécuter Collabora CODE Behind Nginx avec terminaison TLS

Il est possible que les documents soient bloqués après la mise en place d'un protocole HTTPS pour Collabora CODE, car le proxy et CODE ne sont pas d'accord sur la fin de la connexion TLS, ou que le proxy bloque le trafic WebSocket. Configurez Nginx pour qu'il présente le certificat public, redirige vers un écouteur CODE privé et transmette les routes WebSocket. Les paramètres CODE sontssl.enable=false : [insérer les paramètres ici ssl.termination=true].

Cet exemple utilise Nginx sur l'hôte Docker. Pour un proxy dans un autre conteneur, utilisez plutôt le réseau Docker privé. Consultez les paramètres de proxy de Collabora et le guide de l'image Docker CODE pour connaître les options spécifiques à chaque version.

Comprendre les changements de terminaison SSL

La terminaison TLS signifie que Nginx gère la connexion HTTPS et le certificat du navigateur, tandis que CODE utilise HTTP sur le port 9980 en arrière-plan. Sécurisez ce serveur : connectez-le à une interface de bouclage sur un hôte unique ou utilisez un réseau Docker privé. Si le trafic entre le proxy et CODE traverse un réseau non sécurisé, protégez cette liaison avec TLS ou un tunnel.

Schéma réseau montrant que le trafic HTTPS du navigateur se termine au niveau de Nginx avant que le trafic HTTP privé n'atteigne le conteneur Collabora CODE sur le port 9980 (127.0.0.1).
Le navigateur utilise HTTPS pour se connecter à Nginx ; HTTP est limité à la liaison privée entre le proxy et CODE.

Préparer le conteneur et le certificat

  1. Choisissez le nom d'hôte public. Créez un enregistrement DNS pointant office.example.comvers le proxy Nginx. Obtenez un certificat pour ce nom d'hôte précis et installez sa chaîne de certificats et sa clé privée sur le proxy.
  2. Gardez le port de CODE privé. Pour Nginx installé directement sur l'hôte Docker, publiez le port du conteneur uniquement sur l'interface de bouclage. Dans Compose, le mappage correspondant est : [ insérer le mappage ici 127.0.0.1:9980:9980]. Ne publiez pas 9980:9980sur toutes les interfaces de l'hôte, sauf si un pare-feu et une architecture réseau l'interdisent explicitement.
  3. Configurez le mode TLS de CODE. Dans le service Compose, ajoutez les deux options à la configuration de CODE. L'exemple ci-dessous utilise une variable image pour vous permettre de spécifier l'étiquette exacte que vous avez vérifiée et testée.
L'éditeur Docker Compose affiche le port du service Collabora lié à 127.0.0.1 sur le port 9980.
La liaison à 127.0.0.1 garantit que l'écouteur CODE ne soit accessible que depuis l'hôte Docker.
Configuration de l'environnement Docker Compose avec ssl.enable=false et ssl.termination=true pour Collabora CODE
Ces options indiquent à CODE que TLS est géré par le proxy inverse.
services:
  collabora:
    image: ${COLLABORA_CODE_IMAGE}
    restart: unless-stopped
    ports:
      - "127.0.0.1:9980:9980"
    environment:
      extra_params: "--o:ssl.enable=false --o:ssl.termination=true"

Utilisez COLLABORA_CODE_IMAGEune image testée et validée. Conservez votre liste blanche d'hôtes WOPI et vos paramètres d'authentification ; la terminaison TLS ne les remplace pas. Si Nginx est un autre service Docker, omettez le mappage de port hôte et configurez un proxy http://collabora:9980sur le réseau privé partagé.

Configurez Nginx pour terminer le trafic TLS et le proxy CODE.

  1. Ajoutez l'hôte virtuel HTTPS. Placez les emplacements suivants dans le bloc serveur Nginx pour le nom d'hôte public de Collabora. Remplacez le nom d'hôte et le chemin du certificat d'exemple. Cette configuration concerne une URL Collabora à la racine, et non une URL montée sous un chemin tel que `/etc/collabora` /office/.
Extrait de configuration Nginx avec un écouteur TLS, le nom de serveur office.example.com et les chemins d'accès aux fichiers de certificat.
Nginx détient le certificat public et écoute sur HTTPS pour le nom d'hôte Collabora.
server {
    listen 443 ssl;
    server_name office.example.com;
    ssl_certificate /etc/letsencrypt/live/office.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/office.example.com/privkey.pem;

    location ^~ /browser {
        proxy_pass http://127.0.0.1:9980;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
    location ^~ /hosting/discovery {
        proxy_pass http://127.0.0.1:9980;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
    location ^~ /hosting/capabilities {
        proxy_pass http://127.0.0.1:9980;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    location ~ ^/cool/(.*)/ws$ {
        proxy_pass http://127.0.0.1:9980;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 36000s;
    }
    location ^~ /cool/adminws {
        proxy_pass http://127.0.0.1:9980;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 36000s;
    }
    location ~ ^/(c|l)ool {
        proxy_pass http://127.0.0.1:9980;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Transmettez les routes relatives aux ressources, à la découverte et aux fonctionnalités de l'éditeur. Ces /cool/.../wsroutes /cool/adminwsnécessitent les en-têtes HTTP/1.1 et Upgrade pour que Nginx puisse tunneliser les WebSockets ; un délai d'expiration de lecture long permet de maintenir les sessions d'édition ouvertes. Consultez la documentation de Nginx sur le proxy WebSocket .

Nginx bloque la redirection des chemins de découverte du navigateur et de l'hébergement vers l'écouteur CODE privé.
Transférez les ressources de l'éditeur, la découverte WOPI et les points de terminaison des capacités au même écouteur CODE.
Emplacement WebSocket Nginx pour le chemin optimal avec HTTP 1.1, en-têtes Upgrade et Connection, et un délai d'attente de lecture long
La route WebSocket principale nécessite HTTP/1.1 et les en-têtes Upgrade, sinon l'éditeur risque de se charger sans devenir utilisable.
Configuration Nginx pour les chemins de requêtes WebSocket d'administration et Collabora (cool ou lool)
Transmettez également le WebSocket administratif et les autres routes de transfert de documents.

Appliquez la modification et vérifiez le comportement en fonction de la version

  1. Validez Nginx avant de le recharger. Exécutez la commande suivante nginx -t. Poursuivez uniquement si Nginx indique que le test de configuration a réussi ; rechargez ensuite Nginx avec la commande de service habituelle de votre système.
  2. Recréez le conteneur CODE. Appliquez la modification Compose docker compose up -d collabora. Consultez les journaux du conteneur pour détecter les erreurs de démarrage et vérifiez que la configuration active inclut bien les deux options SSL.
Fenêtre de terminal avec la commande nginx -t prête à valider la configuration du proxy inverse
Exécutez le test de syntaxe avant de recharger la page afin qu'un bloc serveur mal formé n'interrompe pas les autres sites.

Pour information, le dépôt Collabora a enregistré un rapport le 22 juillet 2026 indiquant que le coolwsd --probecontrôle d'intégrité intégré à CODE 26.04.2.2 et versions ultérieures pouvait vérifier le protocole HTTPS sur le port 9980 même lorsque la connexion TLS s'arrêtait au niveau du proxy. Cela peut signaler un conteneur comme défaillant alors que le point de terminaison public répond. Consultez le rapport de problème associé à votre image ; testez le point de terminaison public et une session d'édition avant de considérer l'état d'intégrité comme la seule preuve d'une défaillance TLS. Conservez les contrôles d'intégrité jusqu'à ce qu'un autre outil de surveillance les remplace.

Vérifier la découverte HTTPS et une véritable session d'édition

Effectuez une requête https://office.example.com/hosting/discoverydans un navigateur ou avec [nom curlde l'outil/méthode]. Elle devrait renvoyer un fichier XML de découverte WOPI via HTTPS, avec des URL utilisant le nom d'hôte HTTPS public. Un avertissement de certificat indique un problème de nom d'hôte ou de certificat ; des URL HTTP indiquent une incompatibilité de mode TLS ou de schéma de transfert ; une erreur 502 indique que le proxy ne peut pas atteindre CODE.

Ensuite, ouvrez un document de test depuis l'hôte WOPI connecté et vérifiez que l'édition fonctionne. Dans les outils de développement du navigateur, la /cool/.../wsrequête doit établir une connexion WebSocket. Si la découverte fonctionne mais que l'édition est bloquée, vérifiez les emplacements et les en-têtes WebSocket. Assurez-vous que l'intégration autorise l'hôte WOPI et pointe vers celui-ci https://office.example.com.

Configuration réussie : le certificat est approuvé, la découverte utilise HTTPS, le port 9980 reste privé et un document de test s’ouvre et se modifie via le WebSocket.

Laisser un commentaire

Exécuter Collabora CODE Behind Nginx avec terminaison TLS

Exécuter Collabora CODE Behind Nginx avec terminaison TLS

Confiez la gestion du HTTPS à Nginx pour un conteneur Collabora CODE, configurez correctement l'édition des WebSockets et vérifiez le point de terminaison public sans exposer le port 9980.

Garder le texte visible à l'ouverture du clavier mobile Collabora

Garder le texte visible à l'ouverture du clavier mobile Collabora

Dépannage des problèmes de masquage du texte par le clavier d'un navigateur mobile dans Collabora Online, avec des solutions de contournement rapides et des vérifications distinctes pour les navigateurs, les WebViews intégrées et les pages hôtes.

Bloquez les impressions et les téléchargements indésirables dans ONLYOFFICE

Bloquez les impressions et les téléchargements indésirables dans ONLYOFFICE

Définissez des limites d'impression et de téléchargement pour les liens ONLYOFFICE, les membres d'une salle ou les sessions de l'API Docs, puis vérifiez les restrictions à partir d'un compte destinataire.

Planifiez des sauvegardes fiables pour votre espace de travail ONLYOFFICE.

Planifiez des sauvegardes fiables pour votre espace de travail ONLYOFFICE.

Définissez une destination de sauvegarde, une planification, une couverture de messagerie et une limite de conservation dans ONLYOFFICE Workspace, puis vérifiez que l'archive est prête à être restaurée.

Déployez ONLYOFFICE Docs Enterprise avec son fichier de composition officiel

Déployez ONLYOFFICE Docs Enterprise avec son fichier de composition officiel

Démarrez la pile Docker Compose d'entreprise, enregistrez sa licence et ses données, configurez JWT en toute sécurité et vérifiez que les éditeurs sont prêts à s'intégrer.

Nettoyez le texte de votre feuille de calcul avec une macro ONLYOFFICE réutilisable.

Nettoyez le texte de votre feuille de calcul avec une macro ONLYOFFICE réutilisable.

Utilisez une macro JavaScript ONLYOFFICE pour supprimer les caractères non imprimables et les espaces superflus d'une plage de feuille de calcul définie, avec un flux de travail de révision sécurisé.

Modifier l'emplacement de stockage par défaut de l'espace de travail ONLYOFFICE

Modifier l'emplacement de stockage par défaut de l'espace de travail ONLYOFFICE

Déplacez les données du portail depuis le disque par défaut vers un fournisseur de stockage cloud compatible, ou déplacez les données Docker en toute sécurité en modifiant leur mappage de volume hôte.

Supprimez complètement le serveur de documents ONLYOFFICE de Linux.

Supprimez complètement le serveur de documents ONLYOFFICE de Linux.

Identifiez si Document Server utilise un package Linux ou Docker, supprimez uniquement ses composants et vérifiez les données restantes sans supprimer par erreur les services partagés.

Réduisez les délais de coédition sur ONLYOFFICE en identifiant le goulot d'étranglement.

Réduisez les délais de coédition sur ONLYOFFICE en identifiant le goulot d'étranglement.

Identifiez les ralentissements de l'édition collaborative en fonction de la pression sur les ressources Docker, des connexions proxy ou de la charge des documents, puis choisissez la solution qui correspond à vos mesures.

Configurer HTTPS pour ONLYOFFICE Docs dans Docker

Configurer HTTPS pour ONLYOFFICE Docs dans Docker

Choisissez où le protocole TLS doit se terminer, montez un certificat et une clé privée de confiance en toute sécurité et vérifiez l'accès HTTPS à un serveur ONLYOFFICE Docs conteneurisé.