Inicio
» Cómo
»
Ejecuta Collabora CODE detrás de Nginx con terminación TLS.
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.
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.
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.
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.
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.
Al vincularse a 127.0.0.1, el oyente de CODE solo es accesible desde el host de Docker.Estas opciones le indican a CODE que el proxy inverso se encarga de TLS.
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.
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/.
Nginx posee el certificado público y escucha en HTTPS para el nombre de host de Collabora.
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 .
Reenvía los recursos del editor, el descubrimiento de WOPI y los puntos finales de capacidades al mismo oyente de CODE.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.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.
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.
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.
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.