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 :

Récupération certificat client


Sujet :

Apache

  1. #1
    Membre confirmé Avatar de thecanea
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    131
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 131
    Par défaut Récupération certificat client
    Bonjour,

    J'ai un souci que je n'arrive pas à résoudre.

    Je souhaite lire un certificat client (en php). Pour ce faire j'ai configuré mon serveur pour utiliser SSL et pour demander un certificat client. Ma configuration marche parfaitement en local (ubuntu), mais ne fonctionne pas sur le serveur.

    Voilà la configuration Apache en place sur le serveur :

    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
    26
    27
    28
    29
    30
    31
    <VirtualHost IP:443>
            ServerName monsite
            ServerAdmin webmaster@IP.fr
     
            DocumentRoot /var/www/monsite
     
            SSLEngine on
            SSLCertificateFile /var/www/conf/server.crt
            SSLCertificateKeyFile /var/www/server.key
            SSLOptions +ExportCertData
            SSLVerifyClient require
            SSLVerifyDepth  5
            SSLCACertificatePath/var/www/ssl.crt
     
            <Directory/var/www/monsite/>
                    AllowOverride All
                    Options FollowSymLinks
                    <IfModule sapi_apache2.c>
                            php_admin_flag engine on
                            php_admin_flag safe_mode off
                            php_admin_flag display_errors on
                    </IfModule>
                    <IfModule mod_php5.c>
                            php_admin_flag engine on
                            php_admin_value include_path '..:.:'
                            php_admin_flag safe_mode off
                            php_admin_flag display_errors on
                            php_admin_value memory_limit 256M
                    </IfModule>
            </Directory>
    </VirtualHost>

    J'utilise à peu près la même en local, mis à part les options complémentaires correspondant à la balise <Directory>...

    Or en local, quand j'arrive sur ma page, le navigateur me demande de fournir un certificat client. Et, depuis le serveur, il ne me demande rien. La connexion https est pourtant bien en place et fonctionnelle.

    D'où cette différence peut-elle provenir ?
    Est-ce que la différence de clés entre local et serveur peut influencer (SSLCertificateFile et SSLCertificateKeyFile) ?

    Merci par avance pour toutes les pistes que vous pourrez me donner.

    Cordialement,

    Thecanea

  2. #2
    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
    Par défaut
    Citation Envoyé par thecanea Voir le message
    J'utilise à peu près la même en local, mis à part les options complémentaires correspondant à la balise <Directory>...
    Peut-être bien que l'explication se trouve là-dedans, alors On peut voir toute la conf locale ?

    Citation Envoyé par thecanea Voir le message
    Est-ce que la différence de clés entre local et serveur peut influencer (SSLCertificateFile et SSLCertificateKeyFile) ?
    A priori non. La directive qui oblige le client à fournir un vrai certificat est la directive
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SSLVerifyClient require
    C'est déjà le cas dans ta conf. Y aurait pas un .htaccess avec un sur ton serveur et que tu n'as pas en local ? Sinon, débogue avec openssl : y a un outil pour vérifier les connexions SSL sur un serveur.

  3. #3
    Membre confirmé Avatar de thecanea
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    131
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 131
    Par défaut
    Merci pour ton retour,

    Citation Envoyé par _Mac_ Voir le message
    Peut-être bien que l'explication se trouve là-dedans, alors On peut voir toute la conf locale ?
    La conf totale du serveur je vous l'ai fournie, c'est juste ma conf locale qui est allégée...

    J'avais pas pensé du tout au .htaccess, je vais aller faire un tour, voir si il y en a.

    Merci pour ces éléments, si vous avez d'autres idées n'hésitez pas,

    Merci par avance,

  4. #4
    Membre confirmé Avatar de thecanea
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    131
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 131
    Par défaut
    Bon bin à priori rien du côté du .htaccess, il y en a un qui sert juste pour l'url rewriting, et j'ai le même en local.

    Tu pourrais me donner davantage d'infos sur la façon de débugger avec openssl ?

    Merci par avance, toutes les idées sont les bienvenues.

    Cordialement,

    Thecanea

  5. #5
    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
    Par défaut
    Citation Envoyé par thecanea Voir le message
    Tu pourrais me donner davantage d'infos sur la façon de débugger avec openssl ?
    Google Je ne connais pas l'outil, je sais juste qu'il existe.

  6. #6
    Membre confirmé Avatar de thecanea
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    131
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 131
    Par défaut
    Oui, openssl debug dans Google marche très bien

    Alors j'ai pu tester en local et sur le serveur, je me suis aperçu d'une première différence :

    Quand j'exécute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    openssl s_client -host ip-server -port 443 -state
    J'obtiens plein de choses dont :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ---
    No client certificate CA names sent
    ---
    Ce qui à priori signifie que mon serveur n'envoie aucun CA qui serait accepté pour authentifier un éventuel certificat client...

    En local j'obtiens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ---
    Acceptable client certificate CA names
     
    /C=FR/O=ORGANISME
    /C=FR/O=ORGANISME/OU=TEST
    ---
    Le serveur me renvoit bien les CAS que j'ai paramétré dans ma config Apache/SSL.

    Mais alors la question que je me pose, en l'absence de CA qui accepterait ou non des certificats clients, et si je positionne la variable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SSLVerifyClient require
    Ne devrais-je pas obtenir une erreur du navigateur, m'indiquant que je n'ai pas de CA pour accepter des certificats clients ?

    Je ne sais pas si j'ai été clair,

    Ce sont mes premiers indices de réflexion,

    Je reste preneur d'idées, je vais regarder un peu du côté du chargement des CA.

    Merci par avance,

  7. #7
    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
    Par défaut
    Honnêtement, je n'en ai aucune idée. Ce que je sais c'est que les certificats des CA sont stockés dans le fichier indiqué par SSLCACertificatePath. Il faut t'assurer éventuellement que ce fichier est le même sur les deux serveurs. Au-delà, je ne vois vraiment pas ce qui coince

  8. #8
    Membre confirmé Avatar de thecanea
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    131
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 131
    Par défaut
    Ok, merci quand même. Je vais continuer à chercher et à faire des tests, ce doit être un détail certainement qui doit bloquer quelque part.

    SSLCACertificatePath ne pointe pas vers un fichier par contre (quoique si en finalité sous linux) mais vers un répertoire, qui lui est composé de l'ensemble des certificats acceptés (autant de fichiers que de certificats).

    Encore merci, je vous tiendrai au courant,

    Cordialement,

    Thecanea

Discussions similaires

  1. Récupération Certificat d'authentification
    Par hawax dans le forum Windows XP
    Réponses: 2
    Dernier message: 11/06/2008, 11h00
  2. Certificats clients pour cryptage document
    Par biniou14 dans le forum Sécurité
    Réponses: 1
    Dernier message: 10/06/2008, 13h11
  3. Detection erreur 403.7 (certificat client requis ) ASP.Net ou c#
    Par mr_mitchou dans le forum Général Dotnet
    Réponses: 5
    Dernier message: 27/02/2008, 14h33
  4. [FMS] Récupération de Client ID
    Par BnA dans le forum Dynamique
    Réponses: 2
    Dernier message: 19/12/2006, 16h36
  5. certificats clients sous IIS 6
    Par fredoche dans le forum ASP
    Réponses: 4
    Dernier message: 03/08/2006, 11h45

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