ownCloud/Nextcloud et WebDAV : des mots filtrés à la source de tous mes maux

ownCloud/Nextcloud est un remarquable produit libre - qui a déjà atteint un bon degré de maturité - pour mettre sur pied des solutions de synchronisation et de partage de fichiers.

Les clients de synchronisation s'y connectent à l'aide du protocole WebDAV. Le serveur WebDAV est embarqué (SabreDAV) dans l'application serveur ownCloud et il n'est donc pas nécessaire d'activer les modules webdav d'Apache par exemple.

Il faut toutefois savoir que WebDAV fonctionne à l'aide de verbes particuliers du protocole HTTP (ex. LOCK, UNLOCK, PROPFIND, PROPPATCH, SEARCH, MKCOL, MOVE, COPY, OPTIONS, TRACE, MKACTIVITY, CHECKOUT, MERGE, REPORT) et que certains proxy peuvent être configurés pour les filtrer. Ainsi, si vos clients refusent de synchroniser avec le serveur ownCloud, explorez la possibilité de blocage de certains verbes nécessaires pour WebDAV.

Si vous utilisez pound, alors il faut savoir que par défaut les mots clés sont bloqués. Il est nécessaire dans la configuration de pound d'ajouter la ligne xHTTP 2 pour débloquer l'utilisation des verbes WebDAV. La configuration deviendrait alors par exemple (dans /etc/pound/pound.cfg) :

ListenHTTP
        Address <ip>
        Port    80

        ## xHTTP 1 : allow PUT + DELETE also (xHTTP 0 only accepts GET, POST and HEAD)
        ## xHTTP 2 : allow webDAV verbs
        xHTTP           2

        Service
                BackEnd
                        Address <ip>
                        Port    80
                End
        End
End

Il faut bien sûr penser à répéter la chose pour la configuration relative à HTTPS également ! En espérant que cette petite astuce vous économisera quelques minutes de doutes et quelques maux !