Home
» Hoe
»
Voer Collabora CODE Behind Nginx uit met TLS-terminatie.
Voer Collabora CODE Behind Nginx uit met TLS-terminatie.
Het laden van documenten kan vastlopen nadat u Collabora CODE achter HTTPS hebt geplaatst, omdat de proxy en CODE het niet eens zijn over waar TLS eindigt, of omdat de proxy WebSocket-verkeer blokkeert. Configureer Nginx om het openbare certificaat te presenteren, door te sturen naar een privé-CODE-listener en de WebSocket-routes door te geven. De CODE-instellingen zijn ssl.enable=falseen ssl.termination=true.
Dit voorbeeld gebruikt Nginx op de Docker-host. Voor een proxy in een andere container kunt u in plaats daarvan het privé-Docker-netwerk gebruiken. Zie de proxy-instellingen van Collabora en de CODE Docker-imagehandleiding voor versiespecifieke opties.
Begrijp wat SSL-terminatie verandert.
TLS-terminatie betekent dat Nginx de HTTPS-verbinding en het certificaat van de browser afhandelt, terwijl CODE HTTP gebruikt op poort 9980 erachter. Houd die listener privé: koppel hem aan loopback op één host of gebruik een privé Docker-netwerk. Als het verkeer van de proxy naar CODE via een onbetrouwbaar netwerk loopt, beveilig die verbinding dan met TLS of een tunnel.
De browser gebruikt HTTPS voor de verbinding met Nginx; HTTP is beperkt tot de privéverbinding tussen de proxy en CODE.
Bereid de container en het certificaat voor.
Kies de openbare hostnaam. Maak een DNS-record aan dat office.example.comverwijst naar de Nginx-proxy. Verkrijg een certificaat voor die specifieke hostnaam en installeer de certificaatketen en de privésleutel ervan op de proxy.
Houd de poort van CODE privé. Voor Nginx dat direct op de Docker-host is geïnstalleerd, publiceer de containerpoort alleen op de loopback-interface. In Compose is de relevante mapping 127.0.0.1:9980:9980. Publiceer de poort niet 9980:9980op elke hostinterface, tenzij een firewall en netwerkconfiguratie dit expliciet verbieden.
Stel de TLS-modus van CODE in. Voeg in de Compose-service de twee opties toe aan de CODE-configuratie. In het onderstaande voorbeeld wordt een afbeeldingsvariabele gebruikt, zodat u de exacte tag die u hebt beoordeeld en getest kunt vastzetten.
Door verbinding te maken met 127.0.0.1 blijft de CODE-listener alleen bereikbaar vanaf de Docker-host.Deze opties geven CODE aan dat TLS wordt afgehandeld door de reverse proxy.
Stel COLLABORA_CODE_IMAGEde tag in op een geteste, vastgezette afbeelding. Behoud uw WOPI-host-whitelist en authenticatie-instellingen; TLS-terminatie vervangt deze niet. Als Nginx een andere Docker-service is, laat dan de hostpoorttoewijzing weg en proxy naar http://collabora:9980het gedeelde privénetwerk.
Configureer Nginx om TLS- en CODE-verkeer te beëindigen en te proxyen.
Voeg de virtuele HTTPS-host toe. Plaats de volgende locaties in het Nginx-serverblok voor de openbare Collabora-hostnaam. Vervang de voorbeeldhostnaam en certificaatpaden. Deze configuratie is voor een Collabora-URL op rootniveau, niet voor een URL die is gekoppeld aan een pad zoals /office/.
Nginx beheert het openbare certificaat en luistert via HTTPS naar de hostnaam van Collabora.
Stuur de routes voor editorassets, discovery en capabilities door. De /cool/.../wslocaties /cool/adminwsvereisen HTTP/1.1 en Upgrade-headers zodat Nginx WebSockets kan tunnelen; een lange lees-timeout houdt bewerkingssessies open. Zie de documentatie van Nginx over WebSocket-proxying .
Stuur de editor-assets, WOPI-ontdekking en mogelijkheden-eindpunten door naar dezelfde CODE-listener.De belangrijkste WebSocket-route vereist HTTP/1.1 en de Upgrade-headers, anders kan de editor wel laden maar niet bruikbaar zijn.Stuur ook de administratieve WebSocket en de overige documentoverdrachtsroutes door.
Voer de wijziging door en controleer of het gedrag versiegevoelig is.
Valideer Nginx voordat u het opnieuw laadt. Voer het commando uit nginx -t. Ga alleen verder als Nginx meldt dat de configuratietest succesvol is; laad Nginx vervolgens opnieuw met het normale servicecommando van uw systeem.
Maak de CODE-container opnieuw aan. Pas de Compose-wijziging toe met docker compose up -d collabora. Controleer de containerlogboeken op opstartfouten en bevestig dat de actieve configuratie beide SSL-opties bevat.
Voer de syntaxcontrole uit voordat u de pagina opnieuw laadt, zodat een onjuist geformuleerd serverblok geen verstoringen veroorzaakt op andere websites.
Ter context: de repository van Collabora registreerde op 22 juli 2026 een melding dat de ingebouwde coolwsd --probehealth check in CODE 26.04.2.2 en latere versies HTTPS op poort 9980 kon controleren, zelfs wanneer TLS bij de proxy eindigde. Dit kan ertoe leiden dat een container als ongezond wordt gemarkeerd, terwijl het publieke eindpunt wel reageert. Bekijk het probleemrapport voor uw imagetag ; test het publieke eindpunt en een bewerkingssessie voordat u de gezondheidsstatus alleen als bewijs van een TLS-fout beschouwt. Blijf health checks uitvoeren, tenzij een andere monitor ze vervangt.
Controleer of HTTPS-detectie en een echte bewerkingssessie een geldige sessie zijn.
Verzoek https://office.example.com/hosting/discoveryin een browser of met curl. Het zou WOPI discovery XML via HTTPS moeten retourneren, met URL's die de openbare HTTPS-hostnaam gebruiken. Een certificaatwaarschuwing duidt op een probleem met de hostnaam of het certificaat; HTTP-URL's duiden op een mismatch in de TLS-modus of het doorgestuurde schema; een 502-fout geeft aan dat de proxy CODE niet kan bereiken.
Open vervolgens een testdocument vanaf de verbonden WOPI-host en controleer of het bewerken werkt. In de ontwikkelaarstools van de browser /cool/.../wszou de aanvraag een WebSocket-verbinding tot stand moeten brengen. Als de detectie werkt, maar het bewerken vastloopt, controleer dan de WebSocket-locaties en -headers. Controleer of de integratie de WOPI-host toestaat en verwijst naar https://office.example.com.
Succesvolle configuratie: het certificaat wordt vertrouwd, de ontdekking maakt gebruik van HTTPS, poort 9980 blijft privé en een testdocument kan via de WebSocket worden geopend en bewerkt.