Execute o Collabora CODE Behind Nginx com terminação TLS.

Os documentos podem ficar retidos após você colocar o Collabora CODE atrás de HTTPS porque o proxy e o CODE discordam sobre onde o TLS termina, ou o proxy descarta o tráfego WebSocket. Configure o Nginx para apresentar o certificado público, encaminhar para um listener CODE privado e passar as rotas WebSocket. As configurações do CODE são ssl.enable=falsee ssl.termination=true.

Este exemplo usa o Nginx no host Docker. Para um proxy em outro contêiner, use a rede privada do Docker. Consulte as configurações de proxy da Collabora e o guia de imagens Docker do CODE para opções específicas da versão.

Entenda as alterações de terminação SSL

A terminação TLS significa que o Nginx lida com a conexão HTTPS e o certificado do navegador, enquanto o CODE usa HTTP na porta 9980 por trás dele. Mantenha esse listener privado: vincule-o ao loopback em um único host ou use uma rede Docker privada. Se o tráfego do proxy para o CODE atravessar uma rede não confiável, proteja essa conexão com TLS ou um túnel.

Diagrama de rede mostrando o HTTPS do navegador sendo encerrado no Nginx antes que o HTTP privado chegue ao contêiner Collabora CODE na porta 9980, endereço IP 127.0.0.1.
O navegador usa HTTPS para o Nginx; o HTTP fica restrito à conexão privada entre o proxy e o CODE.

Prepare o recipiente e o certificado.

  1. Escolha o nome de host público. Crie um registro DNS que office.example.comaponte para o proxy Nginx. Obtenha um certificado para esse nome de host específico e instale sua cadeia de certificados e chave privada no proxy.
  2. Mantenha a porta do CODE privada. Para o Nginx instalado diretamente no host Docker, publique a porta do contêiner apenas no loopback. No Compose, o mapeamento relevante é `//` 127.0.0.1:9980:9980. Não publique 9980:9980em todas as interfaces do host, a menos que um firewall e o projeto de rede restrinjam isso explicitamente.
  3. Configure o modo TLS do CODE. No serviço Compose, adicione as duas opções à configuração do CODE. O exemplo abaixo usa uma variável de imagem para que você possa fixar a tag exata que revisou e testou.
Editor do Docker Compose mostrando o serviço Collabora vinculado ao endereço 127.0.0.1 na porta 9980.
A vinculação ao endereço 127.0.0.1 mantém o listener do CODE acessível apenas a partir do host Docker.
Configuração do ambiente Docker Compose com ssl.enable=false e ssl.termination=true para Collabora CODE
Essas opções informam ao CODE que o TLS é gerenciado pelo proxy reverso.
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"

Defina COLLABORA_CODE_IMAGEuma tag de imagem testada e fixada. Mantenha sua lista de permissões de host WOPI e configurações de autenticação; a terminação TLS não as substitui. Se o Nginx for outro serviço Docker, omita o mapeamento de porta do host e use o proxy http://collabora:9980na rede privada compartilhada.

Configure o Nginx para encerrar o tráfego TLS e encaminhar o tráfego CODE.

  1. Adicione o host virtual HTTPS. Insira os seguintes locais dentro do bloco do servidor Nginx para o nome de host público do Collabora. Substitua o nome de host e os caminhos do certificado de exemplo. Esta configuração é para um URL do Collabora no nível raiz, não para um URL montado em um caminho como /office/.
Trecho de configuração do Nginx com um ouvinte TLS, nome do servidor office.example.com e caminhos de arquivos de certificado.
O Nginx detém o certificado público e escuta em HTTPS para o nome de host da 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;
    }
}

Encaminhe as rotas de recursos, descoberta e capacidades do editor. Os /cool/.../wslocais precisam dos cabeçalhos HTTP/1.1 e Upgrade para que o Nginx possa tunelar WebSockets; um tempo limite de leitura longo mantém as sessões de edição abertas. Consulte a documentação de proxy WebSocket/cool/adminws do Nginx .

O Nginx bloqueia o encaminhamento dos caminhos de descoberta do navegador e do host para o ouvinte CODE privado.
Encaminhe os recursos do editor, a descoberta WOPI e os endpoints de capacidades para o mesmo listener CODE.
Localização do WebSocket do Nginx para o caminho correto com HTTP 1.1, cabeçalhos Upgrade e Connection e um longo tempo limite de leitura.
A rota principal do WebSocket requer HTTP/1.1 e os cabeçalhos Upgrade, caso contrário o editor pode carregar, mas não se tornar utilizável.
Configuração do Nginx para os caminhos de requisição WebSocket do administrador e Collabora (cool ou lool).
Encaminhe também o WebSocket administrativo e as demais rotas de transferência de documentos.

Aplique a alteração e verifique o comportamento sensível à versão.

  1. Valide o Nginx antes de recarregá-lo. Execute o comando nginx -t. Continue somente se o Nginx informar que o teste de configuração foi bem-sucedido; em seguida, recarregue o Nginx com o comando de serviço padrão do seu sistema.
  2. Recrie o contêiner CODE. Aplique a alteração do Compose com docker compose up -d collabora. Verifique os logs do contêiner em busca de erros de inicialização e confirme se a configuração ativa inclui ambas as opções SSL.
Janela do terminal com o comando `nginx -t` pronta para validar a configuração do proxy reverso.
Execute o teste de sintaxe antes de recarregar a página para que um bloco de servidor malformado não interrompa outros sites.

Para contextualizar a versão, o repositório da Collabora registrou um relatório em 22 de julho de 2026 informando que a verificação de integridade integrada coolwsd --probeno CODE 26.04.2.2 e versões posteriores podia verificar o HTTPS na porta 9980 mesmo quando o TLS terminava no proxy. Isso pode marcar um contêiner como não íntegro, mesmo que o endpoint público responda. Consulte o registro do problema para a sua tag de imagem ; teste o endpoint público e uma sessão de edição antes de considerar o status de integridade como prova de uma falha de TLS. Mantenha as verificações de integridade, a menos que outro monitor as substitua.

Verifique a descoberta HTTPS e uma sessão de edição real.

Faça a solicitação https://office.example.com/hosting/discoveryem um navegador ou com o comando curl`.`. Ela deve retornar um XML de descoberta WOPI via HTTPS, com URLs usando o nome de host HTTPS público. Um aviso de certificado sugere um problema com o nome de host ou com o certificado; URLs HTTP sugerem uma incompatibilidade de modo TLS ou esquema de encaminhamento; um erro 502 sugere que o proxy não consegue alcançar o CODE.

Em seguida, abra um documento de teste do host WOPI conectado e confirme se a edição funciona. Nas ferramentas de desenvolvedor do navegador, a /cool/.../wssolicitação deve estabelecer uma conexão WebSocket. Se a descoberta funcionar, mas a edição travar, verifique os locais e cabeçalhos do WebSocket. Confirme se a integração permite o host WOPI e aponta para https://office.example.com.

Configuração bem-sucedida: o certificado é confiável, a descoberta usa HTTPS, a porta 9980 permanece privada e um documento de teste é aberto e editado através do WebSocket.

Deixar um comentário

Execute o Collabora CODE Behind Nginx com terminação TLS.

Execute o Collabora CODE Behind Nginx com terminação TLS.

Configure o Nginx para gerenciar o HTTPS em um contêiner do Collabora CODE, encaminhe corretamente os WebSockets de edição e verifique o endpoint público sem expor a porta 9980.

Manter o texto visível quando o teclado do Collabora Mobile for aberto

Manter o texto visível quando o teclado do Collabora Mobile for aberto

Solucione problemas com o teclado do navegador móvel que cobre o texto no Collabora Online, com soluções alternativas rápidas e verificações separadas para navegadores, WebViews incorporados e páginas de hospedagem.

Impeça impressões e downloads indesejados no ONLYOFFICE.

Impeça impressões e downloads indesejados no ONLYOFFICE.

Defina limites de impressão e download para links do ONLYOFFICE, membros da sala ou sessões da API do Docs e, em seguida, verifique as restrições na conta do destinatário.

Agende backups confiáveis ​​para o espaço de trabalho ONLYOFFICE.

Agende backups confiáveis ​​para o espaço de trabalho ONLYOFFICE.

Defina um destino de backup, agendamento, cobertura de e-mail e limite de retenção no ONLYOFFICE Workspace e, em seguida, verifique se o arquivo está pronto para ser restaurado.

Implante o ONLYOFFICE Docs Enterprise com seu arquivo Compose oficial.

Implante o ONLYOFFICE Docs Enterprise com seu arquivo Compose oficial.

Inicie o ambiente Docker Compose Enterprise, persista a licença e os dados, configure o JWT com segurança e confirme se os editores estão prontos para integração.

Limpe o texto da planilha com uma macro reutilizável do ONLYOFFICE.

Limpe o texto da planilha com uma macro reutilizável do ONLYOFFICE.

Utilize uma macro JavaScript do ONLYOFFICE para remover caracteres não imprimíveis e eliminar espaços extras de um intervalo definido em uma planilha, com um fluxo de trabalho de revisão seguro.

Alterar o local de armazenamento padrão do espaço de trabalho ONLYOFFICE

Alterar o local de armazenamento padrão do espaço de trabalho ONLYOFFICE

Mova os dados do portal do Disco Padrão para um provedor de armazenamento em nuvem compatível ou realoque os dados do Docker com segurança, alterando o mapeamento de volume do host.

Remova completamente o servidor de documentos ONLYOFFICE do Linux.

Remova completamente o servidor de documentos ONLYOFFICE do Linux.

Identifique se o Servidor de Documentos utiliza um pacote Linux ou Docker, remova apenas os componentes necessários e verifique os dados restantes sem excluir acidentalmente os serviços compartilhados.

Elimine o atraso na coedição do ONLYOFFICE encontrando o gargalo.

Elimine o atraso na coedição do ONLYOFFICE encontrando o gargalo.

Identifique a causa da lentidão na edição colaborativa devido à pressão sobre os recursos do Docker, conexões proxy ou carga de documentos e, em seguida, escolha a solução que corresponda às suas medições.

Configure o HTTPS para a documentação do ONLYOFFICE no Docker.

Configure o HTTPS para a documentação do ONLYOFFICE no Docker.

Escolha onde o TLS deve ser encerrado, monte um certificado confiável e uma chave privada com segurança e verifique o acesso HTTPS a um servidor ONLYOFFICE Docs em um contêiner Docker.