Corrigir o erro “Interface WebDAV com defeito” no ownCloud
Se o ownCloud carregar em um navegador, mas a página de administração exibir a mensagem "A interface WebDAV está quebrada", o envio de arquivos, a sincronização com a área de trabalho e o aplicativo Arquivos também podem falhar. O aviso é um sintoma, não um diagnóstico: o endpoint DAV pode estar inacessível, reescrito incorretamente, bloqueado por um proxy ou regra de segurança, ou inacessível quando o ownCloud acessa seu próprio URL público.
Este guia aplica-se a instalações do ownCloud Classic Server. O ownCloud Infinite Scale possui uma arquitetura e um modelo de implantação diferentes, portanto, não aplique as configurações do Apache do Classic Server a uma implantação do Infinite Scale. As páginas oficiais, cujos links estão abaixo, abrangem o ownCloud Server 10.15 e 10.16, além do Classic Server 11.0; as verificações utilizam rotas WebDAV documentadas e requisitos do Apache, embora o aviso administrativo exato possa variar conforme a versão.
Nota ilustrativa: As imagens da interface e do terminal abaixo são exemplos esquemáticos. Os nomes de host, as linhas de status e os valores exibidos são provisórios e não representam uma instalação capturada nem comprovam a execução de um teste.
O que significa o aviso do WebDAV?
WebDAV é a interface baseada em HTTP que o ownCloud usa para listar e gerenciar arquivos para clientes de sincronização e operações de arquivo relacionadas. O login no navegador apenas confirma que a interface web responde. Não confirma que uma solicitação WebDAV chega ao ownCloud com seu caminho, método, cabeçalhos de autenticação e conexão HTTPS intactos.
Comece por identificar se a falha é externa ou se ocorre apenas na autoverificação do ownCloud. Um erro de sincronização do cliente e uma falha na solicitação WebDAV autenticada apontam para um problema na rota DAV ou na autenticação. Se os clientes funcionarem, mas o aviso do administrador persistir, teste se o próprio servidor consegue resolver e acessar o nome de host público, incluindo seu certificado TLS.
Passo 1: Anote o URL exato e teste o WebDAV diretamente.
Use o mesmo nome de host e caminho de instalação que os usuários inserem em um navegador. Para uma instalação em domínio raiz, a rota DAV do Classic Server geralmente segue este formato:
Se o ownCloud estiver instalado em um diretório específico, inclua esse diretório antes de `<caminho>` /remote.php, por exemplo, `<caminho>` https://example.com/owncloud/remote.php/dav/files/USERNAME/. Use o nome de usuário e a URL da sua conta. Não teste um nome de host fictício nem assuma que todas as instalações usam o mesmo subdiretório.
A partir de uma máquina cliente, envie uma solicitação PROPFIND autenticada. Com o cURL, ao passar apenas o nome de usuário, o sistema solicita a senha em vez de incluí-la no comando.
Uma resposta WebDAV autenticada válida geralmente usa HTTP 207 Multi-Status. Um erro 401pode simplesmente significar que as credenciais não foram aceitas; um 404erro geralmente aponta para a rota errada ou para uma reescrita de caminho de proxy; um erro 403sugere uma regra de acesso, WAF ou política de servidor; e um erro 301ou um 302erro podem indicar um redirecionamento que o cliente ou a autoverificação não seguem como esperado. Leia os cabeçalhos de resposta e os logs do servidor antes de alterar a configuração. Oculte nomes de usuário, cookies, tokens e IPs públicos antes de compartilhar a saída do comando.
Visão geral administrativa esquemática mostrando um aviso do WebDAV; os valores de status exibidos são exemplos.Um exemplo do tipo de resposta 207 Multi-Status que uma verificação PROPFIND autenticada pode retornar.
Passo 2: Verifique se o servidor consegue acessar seu próprio URL público.
Algumas verificações de configuração enviam uma solicitação do servidor ownCloud de volta para o endereço público configurado. Execute verificações básicas de DNS e HTTPS a partir desse servidor, e não apenas do seu computador:
O nome do host deve ser resolvido para um endereço acessível a partir do servidor, e a solicitação HTTPS deve ser concluída sem erros de nome de certificado, cadeia de confiança ou conexão. Se o DNS apontar o servidor de volta através de um firewall que não suporta reflexão NAT (também chamada de NAT em grampo), um cliente externo poderá funcionar enquanto a autoverificação interna falha. DNS dividido, uma rota interna para o proxy reverso ou um ajuste de rede no lado do provedor podem ser apropriados; faça a alteração mais específica que se adeque ao seu projeto de rede.
Uma entrada de domínio confiável é uma lista de permissões de hosts para solicitações ownCloud recebidas. Adicione apenas nomes de host que os usuários realmente utilizam, seguindo o procedimento de configuração documentado. Não adicione endereços internos aleatórios por tentativa e erro. Essa overwrite.cli.urlconfiguração controla a URL usada pelos contextos de linha de comando/em segundo plano em algumas configurações; ela não substitui a correção de DNS, roteamento ou TLS. Confirme o que o aviso realmente diz antes de alterar qualquer configuração.
Exemplo de visualização da configuração do Apache destacando a configuração de substituição de diretório; verifique o caminho e as diretivas reais da sua instalação.
Etapa 3: Verifique as configurações de reescrita e diretório do Apache.
Para instalações do Apache, o guia de configuração manual do ownCloud recomenda o uso de um mod_rewritearquivo AllowOverride All`.env` para o diretório do ownCloud quando se utiliza o arquivo `.env` fornecido .htaccess, além de uma configuração do Apache relacionada ao DAV que impede que o próprio módulo DAV do Apache assuma o controle da rota da aplicação. Compare seu host virtual e bloco de diretório com o guia oficial em vez de copiar e colar um exemplo completo em um site personalizado.
No Debian ou Ubuntu, inspecione o módulo de reescrita carregado e a sintaxe de configuração do Apache:
Se a reescrita estiver ausente, habilite-a com `--enable-rewrite` sudo a2enmod rewrite, valide a configuração novamente e reinicie o Apache somente após a verificação de sintaxe ser aprovada. Confirme se o <Directory>caminho corresponde à raiz web real do ownCloud e se as sobrescritas não estão desabilitadas em níveis superiores da configuração. Evite substituir manualmente a .htaccessreceita de reescrita gerada pelo ownCloud por uma receita genérica; regras personalizadas podem quebrar rotas de aplicativos ou serem perdidas durante atualizações.
Etapa 4: Verifique os proxies reversos, as regras do WAF e os cabeçalhos de autenticação.
Se o endpoint funcionar quando acessado diretamente pelo servidor web, mas falhar através da URL pública, inspecione o proxy reverso ou o balanceador de carga. Certifique-se de que ele preserve o /remote.php/dav/caminho completo, encaminhe as informações de Host e HTTPS esperadas e permita métodos WebDAV como PROPFIND`get` OPTIONS, `get` PUT, `get` e ` MOVEget`, quando necessário. Um proxy que remove o prefixo de instalação ou envia solicitações DAV para um backend diferente pode fazer com que a interface web pareça funcionar corretamente, enquanto as operações de arquivo falham.
Analise os logs do proxy, Apache/Nginx e ownCloud no momento da falha na requisição. Um firewall de aplicação web ou uma regra do ModSecurity pode rejeitar um método ou o corpo da requisição. Identifique o ID exato da regra e crie uma exceção específica para a rota ou requisição do ownCloud afetada e, em seguida, teste novamente. Não desative o WAF globalmente apenas para eliminar um aviso. Se a autenticação DAV falhar somente por trás de um manipulador FastCGI/PHP, verifique se o cabeçalho de autorização está sendo passado para o PHP; as notas de configuração do ownCloud documentam esse tipo de problema.
Etapa 5: Validar TLS e redirecionamentos
Os clientes WebDAV dependem de HTTPS válido, assim como os navegadores. Verifique se o certificado é válido para o nome do host, inclui os certificados intermediários necessários e é confiável para o ambiente do servidor que executa a autoverificação do ownCloud. Um navegador pode ocultar ou confiar separadamente em um certificado com problema relatado pelo cURL ou PHP. Não desative a verificação de certificado como solução.
Verifique se há loops de redirecionamento, redirecionamentos inesperados de HTTP para HTTPS ou redirecionamentos da rota DAV para uma página de login ou página inicial genérica. Um redirecionamento pode ser normal para a URL base de um navegador, mas a solicitação DAV deve, em última instância, chegar ao endpoint do aplicativo com seu método e cabeçalho de Autorização preservados. Se um proxy encerrar o TLS, confirme se o ownCloud está recebendo o protocolo e o host corretos, de acordo com a configuração documentada do proxy.
Um exemplo de verificação de DNS e certificado do servidor que deve se conectar ao nome de host público.
Verifique a correção em ambos os lados.
Após cada alteração desejada, repita as mesmas verificações em vez de alterar várias camadas de uma só vez:
A partir de um cliente, autentique-se no URL DAV documentado e confirme se a resposta é uma resposta WebDAV esperada, normalmente 207 Multi-Statuspara PROPFIND.
A partir do host ownCloud, confirme se o nome de host público é resolvido e se o HTTPS chega à instância sem erros de validação TLS.
Verifique novamente a visão geral do administrador do ownCloud e inspecione os registros em busca de novos erros de DAV, proxy ou autenticação.
Faça um teste de upload, renomeação e download de um arquivo pequeno na interface web ou em um cliente de sincronização compatível.
Se as requisições do cliente funcionarem, mas o aviso persistir, concentre-se no DNS, roteamento, confiança do certificado e URL pública configurada do próprio servidor. Se tanto a autoverificação quanto as requisições dos clientes falharem, concentre-se primeiro no caminho do endpoint, regras de reescrita, roteamento de proxy, métodos de requisição e encaminhamento de autenticação. Quando o servidor for gerenciado por um provedor de hospedagem, envie ao suporte o timestamp, o status HTTP sanitizado, o caminho solicitado e a entrada de log correspondente; não envie senhas ou configurações que contenham segredos.