Forum Linux.général Webdav + Apache 2

Posté par  .
Étiquettes : aucune
0
21
déc.
2004
Salut à tous.

Donc voilà je dois mettre en place un serveur Webdav avec sécurisation SSL sur une Red Hat AS 3, et à vrai dire je n'ai trouvé quasiment aucune doc sur comment faire. J'ai trouvé des docs pour les autres distribs, j'essaie d'adapter mais malheureusement rien ne marche.

Alors voilà, avant de me lancer dans le SSL, j'ai essayé de faire le truc de base avec Webdav. J'ai créé un dossier /var/www/webdav. Les droits dessus sont ok (chmod 755).

J'ai ensuite ajouté dans mon httpd.conf ceci:

Alias /webdav "/var/www/webdav/"

<Location /webdav>
Dav On
#AuthType Basic
#AuthName "Webdav Access"
#AuthUserFile /etc/httpd/passwd/passwd.dav
#<LimitExcept GET POST HEAD OPTIONS>
# require user toto
#</LimitExcept>


Bref le truc de base, sans authentification ni rien (j'ai mis en commentaire tout ce qui s'y rapporte pour l'instant).
J'essaie ensuite via mozilla d'acceder à mon serveur en tapant ceci
http://srvdav/webdav(...)
(srvdav étant le nom de ma machine).

Il me répond: Erreur 403. Forbidden. You don't have permission to access /webdav/ on this server.

Quelqu'un pourrait il m'aider ? Merci d'avance !
  • # Probléme de Slash

    Posté par  (site web personnel) . Évalué à 1.

    tu a écris :


    Alias /webdav "/var/www/webdav/"

    <Location /webdav>


    Ca m'a l'air d'être un probléme de / qui manque dans l'alias

    essaie plutôt

    Alias /webdav/ "/var/www/webdav/"

    <Location /webdav/>


    Je subodore que quand tu demandes /webdav/, Apache remplace /webdav par /var/www/webdav/ et comme il y a encore un /, apache cherche /var/www/webdav//, qu'il ne trouve pas et qui doit être interdit par la configuration de base donc 403.
    • [^] # Re: Probléme de Slash

      Posté par  . Évalué à 1.

      J'ai fait la modification.

      Quand je teste avec http://srvdav/webdav(...) il me fait une erreur 404 (URL /webdav not found on this server).

      Quand je teste avec http://srvdav/webdav/(...) j'ai encore cette erreur 403 ("You don't have permission to access /webdav/ on this server").

      Ca va faire plus d'une semaine que je suis sur cette erreur, je ne sais vraiment plus quoi faire. Je parie que c'est un truc tout bete mais quoi ? ca je ne sais pas hélas.
      • [^] # Re: Probléme de Slash

        Posté par  . Évalué à 1.

        Perso je te dirais de faire un strace sur Apache et voir ou est-ce qu'il essaie d'acceder et quelle erreur est retournee..
      • [^] # Re: Probléme de Slash

        Posté par  . Évalué à 1.

        Est-ce que l'indexation des répertoires est faite ? Un truc du genre :
        Options Indexes
  • # Webdav + Apache 2

    Posté par  . Évalué à 1.

    Pour faire fonctionner Webdav sous Apache2, il te faut charger les 2 modules mod_dav.so et mod_dav_fs.so dans httpd.conf. Ensuite, dans le fichier de configuration SSL (genre ssl.conf) tu définis les paramètres suivants:


    AllowOverride AuthConfig
    Options Indexes FollowSymLinks
    Dav On
    AuthType Basic
    AuthUserFile /etc/httpd/conf/dav_passwd
    AuthName "Accès_WebDav_sécurisé"
    Require valid-user


    Ca doit en principe fonctionner. Pour définir un utilisateur, il faut lancer la commande

    # htpasswd [nom_du_fichier_de_motdepasse] [nom utilisateur]

    Dernière chose, il faut que le répertoire Webdav possède les mêmes droits que l'utilisateur Apache déclaré dans le fichier httpd.conf.
    • [^] # Re: Webdav + Apache 2

      Posté par  . Évalué à 1.

      Impeccable ca marche !! Merci beaucoup. Sous Mozilla ca passe sans soucis.

      Par contre encore un point qui ne marche pas. Quand je veux me connecter à mon serveur webdav via un client en command line (j'utilise cadaver), cela ne marche pas.

      Quand je tape sous cadaver "open http://srvdav/webdav/(...)" il me marque
      "Could not access /webdav/ (not Webdav-enabled ?):
      405 Method Not Allowed
      Connection to 'srvdav' closed."

      Quand je tape "open https://srvdav/webdav/(...)", il me marque
      "SSL is not enabled"

      Quelqu'un peut m'aider ?
      Merci d'avance.
      • [^] # Re: Webdav + Apache 2

        Posté par  . Évalué à 1.

        A noter que j'ai tenté les connections avec http(s)://srvdav/webdav/ et http(s)://srvdav/webdav

        Même résultat à chaque fois (voir post précédent).

        J'ai tenté en mettant http(s)://srvdav/var/www/webdav(/) à tout hasard mais cela ne marche pas non plus.

        Merci d'avance.
        • [^] # Re: Webdav + Apache 2

          Posté par  . Évalué à 1.

          Tout dépend de ce qu'il y a de déclaré dans DocumentRoot. Admettons que tu ais configuré DocumentRoot avec /var/www/html, ce chemin devient ton répertoire racine. Donc pour le répertoire Webdav, il faut qu'il se situe sous /var/www/html. Si tu veux utiliser Webdav sous http, tu déclares ton répertoire comme suit dans httpd.conf:

          <Directory /Webdav>
          Dav On
          AllowOverride AuthConfig
          Options Indexes FollowSymLinks
          AuthType Basic
          AuthUserFile /etc/httpd/conf/dav_passwd
          AuthName "Accès_WebDav_sécurisé"
          Require valid-user
          • [^] # Re: Webdav + Apache 2

            Posté par  . Évalué à 1.

            En fait à la fin, il me faudrait un webdav sur lequel je me connecte avec un client en ligne de commande. Comment faire ? Ca marche impecc en http mais pas en client command line. (cf mon post au dessus).

            Je suis nouveau dans le monde Linux/Apache/Webdav et mon boss m'a demandé de finir ce serveur avant fin décembre ... vous comprendrez alors que ce n'est pas évident pour moi.

            Quelqu'un a une idée pour une connection à mon serveur via client command line ?

            Merci d'avance et bonnes fêtes de noël à tous.
            • [^] # Re: Webdav + Apache 2

              Posté par  . Évalué à 1.

              Autre chose à vérifier, la présence de la ligne suivante:

              DAVLockDB /var/lib/dav/lockdb

              Cette ligne doit se situer dans les options générales du fichier httpd.conf. Il faut que l'utilisateur Apache puisse écrire dans le répertoire /var/lib/dab pour que ça fonctionne.

              cadaver devrait fonctionner sans problème comme client Webdav en ligne de commande.
              • [^] # Re: Webdav + Apache 2

                Posté par  . Évalué à 1.

                Hello !

                Yep, cette ligne était présente dans mon httpd.conf. Mais quand je lance cadaver, et que je tape "open https://srvdav/webdav/(...)", il me répond "SSL is not enabled".

                J'ai tenté avec Naja (autre client webdav) et toujours le meme probleme. Quelqu'un a une idée ?

                Autre question: Existe t'il des clients graphiques webdav sous linux qui fonctionnent bien sous la Red Hat AS 3 ? (mon boss souhaite ce type de client mais perso je préfère ceux en command line).

                Merci d'avance
                • [^] # Re: Webdav + Apache 2

                  Posté par  . Évalué à 1.

                  Pour utiliser SSL sous Apache, il faut créer les certificats pour ton serveur Web. Il existe bons nombres de procédures sur Internet qui expliquent comment créer des certificats, en voici une qui devrait convenir.

                  http://www.neokraft.net/articles/apache2-linux/chap5.html(...)

                  Pour pouvoir les créer, tu auras besoin de OpenSSL installé sur ta machine.
                  • [^] # Re: Webdav + Apache 2

                    Posté par  . Évalué à 1.

                    Oui j'ai déjà les certificats d'installés ainsi qu'OpenSSL. Sous Mozilla, tout fonctionne impecc, il me délivre les certifcats correctement via https://srvdav/webdav/(...)

                    En tapant http://srvdav/webdav/(...) , l'url ne marche pas ... bref c'est normal vu que je ne veux que du sécurisé.

                    Sous Windows, j'utilise Naja, je configure les certificats comme il me le demande et j'arrive à me connecter à mon serveur webdav. Mais bon Windows c'est juste une machine client de test et je ne dois tourner que sous Linux.

                    Sous Linux donc, que ce soit Cadaver ou Naja, il refuse de se connecter en https. Si je configure mon serveur webdav sans sécurisation SSL (donc dans httpd.conf), cadaver se connecte sans soucis via la commande "open http://srvdav/webdav/(...)".
                    Dès que je passe en SSL (donc dans ssl.conf), et que je tape "open https://srvdav/webdav/(...)", il me dit SSL is not enabled. Le problème vient donc du SSL et non du webdav.

                    J'ai pourtant installé OpenSSL. Mais je me pose 2 questions:
                    - Faut il compiler cadaver avec ssl ? (j'ai tenté ./configure --with-ssl=/usr/local/ssl pour la compilation de cadaver mais après le ./configure, il me marque "SSL Support: not active" ou un truc du genre.

                    - Faut il déclarer quelque part à cadaver où se trouve les certificats client ? Si oui comment ?

                    Merci d'avance
                    • [^] # Re: Webdav + Apache 2

                      Posté par  . Évalué à 1.

                      Bonjour,

                      Je viens de compiler cadaver avec l'option --with-ssl sans rien d'autre et je n'ai pas eu de problèmes. Il a détecté openSSL et me l'a affiché à la fin de la configuration. Voici ce qu'il m'a répondu :

                      Configured to build cadaver 0.22.2:

                      Install prefix: /usr/local
                      Compiler: gcc
                      Neon library: included libneon (0.24.6)
                      XML Parser: libxml 2.6.6
                      SSL library: OpenSSL (0.9.7 or later)
                      Internationalization: Not built
                      GNU readline support: enabled

                      Now run 'make' to compile cadaver.

                      Les lignes concernant openSSL:

                      checking for pkg-config... /usr/bin/pkg-config
                      checking for openssl pkg-config data... yes
                      configure: using SSL library configuration from pkg-config
                      checking openssl/ssl.h usability... yes
                      checking openssl/ssl.h presence... yes
                      checking for openssl/ssl.h... yes
                      checking openssl/opensslv.h usability... yes
                      checking openssl/opensslv.h presence... yes
                      checking for openssl/opensslv.h... yes
                      checking OpenSSL version is >= 0.9.7... yes
                      configure: OpenSSL >= 0.9.7; EGD support not needed in neon

                      A l'exécution de cadaver, il m'affiche sans difficultés ma page sécurisée.

                      Cela dépend de l'installation de Openssl. Comment l'as tu installé? L'as-tu compilé ou as tu installé un rpm ou .deb?
                      Il se peut que tes librairies SSL ne soient pas accessibles. Vérifies que le chemin de tes librairies soit dans ton fichier /etc/ld.so.conf. Si tu as compilé openssl sans options, les librairies libssl doivent se trouver dans /usr/local/lib. Vérifies leurs chemins et rajoutes ce chemin dans le fichier /etc/ld.so.conf. Lance la commande ldconfig pour la prise en charge des modifications et réessaie de compiler cadaver.
                      • [^] # Re: Webdav + Apache 2

                        Posté par  . Évalué à 1.

                        Un grand merci à toi !!!

                        Ca marche maintenant. Le problème venait bien de OpenSSL. Dans le fichier install.txt de OpenSSL, il me dit bien qu'il s'installe par défaut (pour des raisons historiques) dans /usr/local/lib ... et quand je vais voir il n'y a rien.

                        En fait il s'est installé dans /usr/local/ssl/lib , je ne sais pas pourquoi vu que je n'ai pas spécifié de répertoire spécifique.
                        J'ai du rajouter dans le ld.so.conf ce chemin d'accès et le tour était joué.

                        Un grand merci pour ton aide car sans toi ... ben j'aurai pas trop su quoi dire à mon boss pour lui expliquer que rien ne marchait ! ;-)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.