IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

[.htacess] Authentification basique (.htpasswd) et authentification SSL


Sujet :

Apache

  1. #1
    Membre à l'essai
    Profil pro
    Développeur Web
    Inscrit en
    Août 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2008
    Messages : 28
    Points : 20
    Points
    20
    Par défaut [.htacess] Authentification basique (.htpasswd) et authentification SSL
    Bonjour,

    Je viens vers vous avec un problème, ma foie, fort bizarre auquel je ne trouve pas de solution....

    Je cherche a protégé un sous-dossier de mon application avec une authentification de type basique ( comprendre par la .htaccess et .htpasswd ). Hors mon site requière déjà une authentification via certificat en SSL.

    Pour ce faire j'utilise les directive suivante dans mon .htaccess de la racine :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    # Authentification SSL/Certificats
    SSLRequireSSL
    SSLOptions +StdEnvVars
    SSLVerifyClient require
     
    # Règles de réécriture pour Zend Framework
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule .* index.php
     
    # Sécurité : Ne pas autoriser le parcours de répertoires
    Options -Indexes
     
    # Configuration PHP
    php_flag magic_quotes_gpc off
    php_flag register_globals off
    php_flag short_open_tag on
    j'utilise alors la configuration suivante pour le .htaccess du sous-dossier que je veut protéger :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    AuthUserFile /home/wwwroot/mon_site/mon_dossier_proteger/.htpasswd
      AuthGroupFile /dev/null
      AuthName index.php
      AuthType Basic
      <Files index.php>
        require valid-user
      </Files>
    lorsque j'essaye d'y accéder directement dans mon navigateur, j'ai bien la boite de dialogue me demandant mes identifiants, lesquels je rempli avec ceux définit dans mon .htpasswd, et lorsque je soumet il me jette et me redemande mes identifiants...

    Par la suite, lorsque je regarde dans mes logs, je vois ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Tue Apr 07 10:19:13 2009] [error] [client 83.201.211.188] user <DN_du_certificat_de_connexion_ssl>: authentication failure for "/mon_dossier_proteger/index.php": Password Mismatch
    Ce que je ne comprend pas et que je voudrais corriger, c'est pourquoi je me retrouve avec le DN du certificat avec lequel je me suis authentifié en ssl et pourquoi je n'est pas l'utilisateur que j'ai rentré dans la boite de dialogue...

    Cordialement

  2. #2
    Membre chevronné Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Points : 1 895
    Points
    1 895
    Par défaut
    Citation Envoyé par Eleyone Voir le message
    lesquels je rempli avec ceux définit dans mon .htpasswd,
    le problème a l'air d'être là
    d'après le message d'erreur, il faut que tu tapes le mot de passe du certificat à ce moment
    GNAP !

  3. #3
    Membre à l'essai
    Profil pro
    Développeur Web
    Inscrit en
    Août 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2008
    Messages : 28
    Points : 20
    Points
    20
    Par défaut
    Pour le coup cela me paraissait une bonne idée, ta solution... d'autant plus que je n'i avait pas pensé... Mais Hélas toujours le même problème...

    Du coup, voici la config de mon vhost si cela peu être utile... :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    <VirtualHost XXX.XXX.XXX.XXX:443>
        ServerName mon_site
        ServerAdmin admin@mon_site.com
        DocumentRoot /home/wwwroot/mon_site/
        ErrorLog /var/log/apache2/mon_site-error_log
        CustomLog /var/log/apache2/mon_site-access_log combined
     
        DirectoryIndex default.htm index.php default.cfm index.htm index.cgi index.cfm
        Options -Indexes
     
        SSLEngine on
        SSLCertificateFile /etc/apache2/ssl.crt/server.cer
        SSLCertificateKeyFile /etc/apache2/ssl.key/server.key
        SSLCertificateChainFile /etc/apache2/ssl.crt/ca.pem
     
        <Location />
            SSLVerifyClient require
            SSLVerifyDepth 5
        </Location>
     
        <Directory /home/wwwroot/mon_site/mon_dossier_portege>
            AllowOverride All
        </Directory>
     
    </VirtualHost>

  4. #4
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Je pense que le problème vient d'un "conflit" entre SSLVerifyClient qui force le client à envoyer un certificat et le Require de l'authentification basique mais je ne trouve rien sur le sujet sur le Web. Peut-être que le navigateur n'envoie pas le bon utilisateur au serveur : as-tu essayé avec différents navigateurs ?

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  5. #5
    Membre à l'essai
    Profil pro
    Développeur Web
    Inscrit en
    Août 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2008
    Messages : 28
    Points : 20
    Points
    20
    Par défaut
    Effectivement se pourrait être la solution... Cependant j'ai essayé sous différent navigateur et, hélas, toujours le même message dans les logs...

    Cependant cela me parait tout de même bizarre, que les deux directive ne puissent pas être utilisé en même temps, ou touts du moins, que ce ne soit spécifié null part, que l'une prenne le pas sur l'autre....

    A titre d'indications, je me suis aussi permis de rajouter le DN de mon certificat dans le .htpasswd, avec dans un premier temps son propre passe et dans un deuxième temps un passe arbitraire, et toujours pas mieux... si ce n'est que si j'essaye avec un certif qui n'est pas dans le htpasswd alors la il refuse la connexion en stipulant que l'utilisateur n'as pas le droit d'accès...


  6. #6
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Tiens, je viens de tomber sur l'option SSL FakeBasicAuth en lisant la doc Apache :
    Citation Envoyé par Doc Apache
    FakeBasicAuth

    When this option is enabled, the Subject Distinguished Name (DN) of the Client X509 Certificate is translated into a HTTP Basic Authorization username. This means that the standard Apache authentication methods can be used for access control. The user name is just the Subject of the Client's X509 Certificate (can be determined by running OpenSSL's openssl x509 command: openssl x509 -noout -subject -in certificate.crt).
    Est-ce que ça ne pourrait pas t'aider ? Par exemple, forcer un SSLOptions -FakeBasicAuth ou au contraire l'activer ?

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  7. #7
    Membre à l'essai
    Profil pro
    Développeur Web
    Inscrit en
    Août 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2008
    Messages : 28
    Points : 20
    Points
    20
    Par défaut
    Effectivement... je teste ça demain et je te tiens au courant...

Discussions similaires

  1. Réponses: 4
    Dernier message: 29/08/2011, 15h11
  2. Réponses: 3
    Dernier message: 09/08/2011, 21h39
  3. Authentification basique qui bug
    Par stc074 dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 26/01/2011, 18h28
  4. Réponses: 2
    Dernier message: 22/12/2010, 08h28
  5. Réponses: 4
    Dernier message: 09/07/2010, 18h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo