Ejecuta Collabora CODE detrás de Nginx con terminación TLS.

Es posible que los documentos se bloqueen después de configurar Collabora CODE detrás de HTTPS porque el proxy y CODE no coinciden en dónde termina TLS, o porque el proxy descarta el tráfico WebSocket. Configure Nginx para que presente el certificado público, lo reenvíe a un oyente privado de CODE y pase las rutas WebSocket. La configuración de CODE es ssl.enable=falsey ssl.termination=true.

Este ejemplo utiliza Nginx en el host de Docker. Para un proxy en otro contenedor, utilice la red privada de Docker. Consulte la configuración de proxy de Collabora y la guía de imágenes de Docker de CODE para obtener opciones específicas de la versión.

Comprenda qué cambios se producen en la terminación SSL.

La terminación TLS implica que Nginx gestiona la conexión HTTPS y el certificado del navegador, mientras que CODE utiliza HTTP en el puerto 9980. Mantenga ese oyente privado: vincúlelo a la interfaz loopback de un único host o utilice una red Docker privada. Si el tráfico entre el proxy y CODE atraviesa una red no confiable, proteja ese enlace con TLS o un túnel.

Diagrama de red que muestra cómo el navegador HTTPS termina en Nginx antes de que el HTTP privado llegue al contenedor Collabora CODE en 127.0.0.1 puerto 9980.
El navegador utiliza HTTPS para conectarse a Nginx; HTTP se limita al enlace privado entre el proxy y CODE.

Prepare el contenedor y el certificado.

  1. Seleccione el nombre de host público. Cree un registro DNS que office.example.comapunte al proxy Nginx. Obtenga un certificado para ese nombre de host específico e instale su cadena de certificados y clave privada en el proxy.
  2. Mantén el puerto de CODE privado. Para Nginx instalado directamente en el host de Docker, publica el puerto del contenedor solo en la interfaz loopback. En Compose, la asignación relevante es 127.0.0.1:9980:9980. No publiques 9980:9980en todas las interfaces del host a menos que un firewall y el diseño de la red lo restrinjan explícitamente.
  3. Configura el modo TLS de CODE. En el servicio Compose, agrega las dos opciones a la configuración de CODE. El ejemplo a continuación utiliza una variable de imagen para que puedas fijar la etiqueta exacta que has revisado y probado.
Editor de Docker Compose que muestra el puerto del servicio Collabora vinculado a 127.0.0.1 en el puerto 9980.
Al vincularse a 127.0.0.1, el oyente de CODE solo es accesible desde el host de Docker.
Configuración del entorno Docker Compose con ssl.enable=false y ssl.termination=true para Collabora CODE
Estas opciones le indican a CODE que el proxy inverso se encarga de TLS.
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"

Establezca COLLABORA_CODE_IMAGEuna etiqueta de imagen probada y fija. Mantenga la lista de hosts permitidos de WOPI y la configuración de autenticación; la terminación TLS no las reemplaza. Si Nginx es otro servicio de Docker, omita la asignación de puerto de host y redirija a http://collabora:9980la red privada compartida.

Configure Nginx para finalizar el tráfico TLS y actuar como proxy para el tráfico CODE.

  1. Agregue el host virtual HTTPS. Coloque las siguientes ubicaciones dentro del bloque del servidor Nginx para el nombre de host público de Collabora. Reemplace el nombre de host y las rutas del certificado de ejemplo. Esta configuración es para una URL de Collabora de nivel raíz, no para una URL montada debajo de una ruta como /office/.
Fragmento de configuración de Nginx con un oyente TLS, el nombre del servidor office.example.com y las rutas de los archivos de certificado.
Nginx posee el certificado público y escucha en HTTPS para el nombre de host de 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;
    }
}

Reenvía las rutas de recursos, descubrimiento y capacidades del editor. Las ubicaciones /cool/.../wsy necesitan encabezados HTTP/1.1 y Upgrade para que Nginx pueda tunelizar WebSockets; un tiempo de espera de lectura prolongado mantiene abiertas las sesiones de edición. Consulta la documentación de proxy de WebSocket/cool/adminws de Nginx .

Nginx bloquea la ubicación reenviando las rutas de descubrimiento del navegador y del alojamiento al oyente privado de CODE.
Reenvía los recursos del editor, el descubrimiento de WOPI y los puntos finales de capacidades al mismo oyente de CODE.
Ubicación de Nginx WebSocket para la ruta cool con HTTP 1.1, encabezados Upgrade y Connection, y un tiempo de espera de lectura largo.
La ruta principal de WebSocket necesita HTTP/1.1 y los encabezados Upgrade; de ​​lo contrario, el editor podría cargarse sin llegar a ser utilizable.
Configuración de Nginx para las rutas de solicitud cool admin WebSocket y Collabora cool o lool
Reenvía también el WebSocket administrativo y las rutas de transferencia de documentos restantes.

Aplique el cambio y compruebe el comportamiento sensible a la versión.

  1. Valida Nginx antes de recargarlo. Ejecuta nginx -t. Continúa solo si Nginx informa que la prueba de configuración es exitosa; luego recarga Nginx con el comando de servicio normal de tu sistema.
  2. Recrea el contenedor CODE. Aplica el cambio de Compose con docker compose up -d collabora. Comprueba los registros del contenedor para detectar errores de inicio y confirma que la configuración activa incluye ambas opciones SSL.
Ventana de terminal con el comando nginx -t listo para validar la configuración del proxy inverso.
Ejecuta la prueba de sintaxis antes de recargar para que un bloque de servidor mal formado no interrumpa otros sitios.

coolwsd --probePara contextualizar la versión, el repositorio de Collabora registró un informe el 22 de julio de 2026 que indicaba que la comprobación de estado integrada en CODE 26.04.2.2 y versiones posteriores podía comprobar HTTPS en el puerto 9980 incluso cuando TLS finalizaba en el proxy. Esto puede marcar un contenedor como no saludable aunque el punto final público responda. Revise el registro del problema para su etiqueta de imagen ; pruebe el punto final público y una sesión de edición antes de considerar el estado de salud como prueba de un fallo de TLS. Mantenga las comprobaciones de estado a menos que otro monitor las reemplace.

Verificar la detección HTTPS y una sesión de edición real

Realice la solicitud https://office.example.com/hosting/discoveryen un navegador o con curl. Debería devolver el XML de descubrimiento WOPI a través de HTTPS, con URL que utilicen el nombre de host HTTPS público. Una advertencia de certificado sugiere un problema con el nombre de host o el certificado; las URL HTTP sugieren una discrepancia en el modo TLS o el esquema de reenvío; un error 502 sugiere que el proxy no puede acceder a CODE.

A continuación, abra un documento de prueba desde el host WOPI conectado y confirme que la edición funciona. En las herramientas para desarrolladores del navegador, la /cool/.../wssolicitud debería establecer una conexión WebSocket. Si la detección funciona pero la edición se bloquea, compruebe las ubicaciones y los encabezados de WebSocket. Confirme que la integración permite el host WOPI y apunta a https://office.example.com.

Configuración correcta: el certificado es de confianza, el descubrimiento utiliza HTTPS, el puerto 9980 permanece privado y se abre y edita un documento de prueba a través de WebSocket.

Dejar un comentario

Ejecuta Collabora CODE detrás de Nginx con terminación TLS.

Ejecuta Collabora CODE detrás de Nginx con terminación TLS.

Configurar Nginx para que se encargue del HTTPS en un contenedor Collabora CODE, reenviar correctamente la edición de WebSockets y verificar el punto final público sin exponer el puerto 9980.

Mantener el texto visible cuando se abre el teclado móvil de Collabora

Mantener el texto visible cuando se abre el teclado móvil de Collabora

Solucione el problema de que el teclado del navegador móvil cubra el texto en Collabora Online, con soluciones rápidas y comprobaciones independientes para navegadores, WebViews integrados y páginas anfitrionas.

Evita impresiones y descargas no deseadas en ONLYOFFICE.

Evita impresiones y descargas no deseadas en ONLYOFFICE.

Establezca límites de impresión y descarga para los enlaces de ONLYOFFICE, los miembros de la sala o las sesiones de la API de Docs, y luego verifique las restricciones desde la cuenta del destinatario.

Programe copias de seguridad confiables para ONLYOFFICE Workspace.

Programe copias de seguridad confiables para ONLYOFFICE Workspace.

Configure un destino de copia de seguridad, una programación, la cobertura de correo electrónico y un límite de retención en ONLYOFFICE Workspace y, a continuación, verifique que el archivo esté listo para su restauración.

Implementa ONLYOFFICE Docs Enterprise con su archivo Compose oficial.

Implementa ONLYOFFICE Docs Enterprise con su archivo Compose oficial.

Inicie la pila de Docker Compose Enterprise, guarde su licencia y datos, configure JWT de forma segura y confirme que los editores están listos para integrarse.

Limpiar el texto de una hoja de cálculo con una macro reutilizable de ONLYOFFICE.

Limpiar el texto de una hoja de cálculo con una macro reutilizable de ONLYOFFICE.

Utilice una macro JavaScript de ONLYOFFICE para eliminar caracteres no imprimibles y recortar espacios adicionales de un rango definido de una hoja de cálculo, con un flujo de trabajo de revisión seguro.

Cambiar la ubicación de almacenamiento predeterminada del espacio de trabajo de ONLYOFFICE

Cambiar la ubicación de almacenamiento predeterminada del espacio de trabajo de ONLYOFFICE

Traslada los datos del portal desde el disco predeterminado a un proveedor de almacenamiento en la nube compatible, o reubica los datos de Docker de forma segura cambiando su asignación de volumen de host.

Eliminar completamente ONLYOFFICE Document Server de Linux

Eliminar completamente ONLYOFFICE Document Server de Linux

Identifique si Document Server utiliza un paquete de Linux o Docker, elimine solo sus componentes y compruebe los datos restantes sin borrar por error los servicios compartidos.

Soluciona el retraso en la coedición de ONLYOFFICE encontrando el cuello de botella.

Soluciona el retraso en la coedición de ONLYOFFICE encontrando el cuello de botella.

Atribuya la lentitud en la edición colaborativa a la presión sobre los recursos de Docker, las conexiones proxy o la carga de documentos, y luego elija la solución que mejor se ajuste a sus mediciones.

Configurar HTTPS para ONLYOFFICE Docs en Docker

Configurar HTTPS para ONLYOFFICE Docs en Docker

Elija dónde debe finalizar TLS, monte de forma segura un certificado y una clave privada de confianza, y verifique el acceso HTTPS a un servidor ONLYOFFICE Docs en contenedores Docker.