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 :

[OpenSSL]Fonctionnement des certificats ?


Sujet :

Apache

  1. #1
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 065
    Points
    19 065
    Par défaut [OpenSSL]Fonctionnement des certificats ?
    Salut à tous.

    J'aimerai connaitre le comportement normal des certificats OpenSSL (ou Let's Encrypt) dans apache.
    J'ai un certificat racine (Ca) qui va me permettre de signer mes autres certificats.
    J'ai deux types de certificats (intermédiaire, serveur et client) :
    --> "General" qui est comme son nom l'indique, général à tous mes sites locaux, sauf à localhost.
    --> "Localhost", spécifique uniquement au site localhost.
    Ils sont exclusifs l'un de l'autre.

    a) j'entre dans ma page web localhost.
    Pourquoi Google Chrome me propose mes deux certificats clients "General" et "Localhost" ?

    b) si je sélectionne l'un ou l'autre, je peux entrer dans localhost.
    Ce n'est pas normal car je m'attendais à ce que le certificat "General" rejete l'accès à la page web localhost.

    c) j'ai une page web "site-un". J'ai aussi le même comportement.
    Or je m'attendais à ce que le certificat "Localhost" rejete mon accès.

    d) pourquoi dois-je sélectionner un certificat client ?
    Je pensais que cela était transparent par rapport à l'utilisateur.
    Le navigateur sélectionne l'unique certificat pour le site lui correspondant.

    e) Il y a un unique certificat pour le site localhost.
    Le site est renseigné dans le certificat, ainsi que l'adresse IP.
    Dois-je comprendre que je me suis trompé de magasin ?

    f) mes certificats ont été rangés dans les magasins suivants :
    --> Les certificats clients sont dans le magasin "Personnel" (My).
    --> L'autorité de certification (Ca) est dans le magasin "Autorité de certification racines de confiance" (Root).
    --> Les certificats intermédiares sont dans le magasin "Autorité de certifications intermédiaire" (Ca).
    Entre parenthèse est le nom du magasin quand je passe par "certutil.msc".

    Est-ce bien ainsi que je dois procéder ?

    Cordialement.
    Artemus24.
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  2. #2
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 065
    Points
    19 065
    Par défaut
    Salut à tous.

    Un certificat Let's Encrypt est ce que l'on nomme un certificat de domaine valide (DV in english).
    N'importe qui peut accéder à un site si celui-ci possède un certificat let's Encrypt. Pourquoi ?
    Parce que tous les navigateurs possèdent le certificat "ISRG Root X1" ainsi que "R3".
    Le premier est l'autorité de certification, et le second l'intermédiaire qui signe les certificats.

    Je désire restreindre les accès à mon site. De quoi ai-je besoin ?
    D'un certificat client "PFX" ainsi que des certificats serveurs "key", "CRT" et "CHAIN".
    "CHAIN" est la concaténation de l'autorité de certification et des intermédiaires".
    J'ai fait des tests avec OpenSSL, et il me semble que la configuration que je viens de décrire est correcte.

    Quand est-il des certificats Let's Encrypt ?
    D'après ce que j'ai pu comprendre, on ne peux pas faire cela avec un certificat DV.
    Ou alors, je n'ai pas su où trouver le bon paramétrage pour le faire.
    Après beaucoup de manipulations, j'ai pu créer un certificat client Let's Encrypt, mais il ne fonctionne pas.

    Quelques interrogations :

    g) Est-il possible d'avoir des certificats Let's Encrypt spécifique pour un groupe d'utilisateur ?

    h) En suppposant que cela ne soit pas possible, dois-je comprendre que la solution est de le faire par OpenSSL.
    Mais je croyais que l'on ne devait pas avoir de certificats auto-signé ???

    i) Le problème que je n'arrive pas à résoudre :
    Sous Mysql, j'arrive à gérer le niveau "--ssl_mode verify_ca", mais pas le niveau "--ssl_mode verify_identity".
    D'après ce que j'ai compris, il me faut un certificat ayant un nom de mon domaine et que celui-ci ne soit pas auto-signé.
    --> Je fais comment ?

    Pour ceux qui n'ont pas compris ma question :
    --> les certificats OpenSSL sont auto-signé et
    --> les certificats Let's Encrypt DV ne sont pas destinés à gérer un groupe d'utilisateur.

    Cordialement.
    Artemus24.
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 721
    Points : 1 876
    Points
    1 876
    Par défaut
    Citation Envoyé par Artemus24 Voir le message
    D'après ce que j'ai compris, il me faut un certificat ayant un nom de mon domaine et que celui-ci ne soit pas auto-signé.
    Oui, quand il s'agit de certificats côté serveur, càd pour sécuriser les échanges avec le site que vous hébergez. Ce certificat est émis pour un hostname précis ou wildcard.
    Dans le cas d'un certificat client, c'est différent. Comme c'est vous qui émettez le certificat et que vous contrôlez le serveur il n'y a pas cette problématique de confiance. En plus si c'est vous le client final, il n'y a rien à expliquer puisque vous savez déjà comment le mettre en place dans votre navigateur.

    En gros vous pouvez avoir:
    • un certificat de type Let's encrypt qui permet au client de valider le serveur (utiliser une entité reconnue évitera des messages intempestifs selon lesquels le certificat n'est pas trusté etc).
    • un certificat self-signed émis par vous, qui permet au serveur de valider le client - notez que la vérification se passe dans l'autre sens que décrit plus haut et c'est sans doute l'aspect qui vous a échappé

    Ce sont deux choses différentes, qui ne sont pas liées entre elles.

    Je suis sûre que j'explique mal, mais les ressources ne doivent pas manquer sur ce sujet

    Pour compléter ma réponse: certaines boîtes du genre Rapidssl émettent des certificats pour certains usages comme signer des mails, ou se connecter à des sites/services. Dans un cas précis j'ai dû m'en procurer pour accéder à l'interface EPP d'un TLD registry car leur politique était d'accepter uniquement des certificats émis par des autorités reconnues (ils valident juste le mail en fait). En gros, ils délèguent tout simplement cette vérification à une entité externe.
    Mais cette façon de faire n'a rien d'obligatoire. Comme c'est votre serveur, vous décidez des certificats que vous voulez truster. A contrario, vous n'avez pas le contrôle du navigateur des personnes autres que vous, d'où l'obligation de passer par ces "autorités reconnues", qui sont une forme de racket soit dit en passant, au minimum une rente de situation.

  4. #4
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 065
    Points
    19 065
    Par défaut
    Salut Binarygirl.

    Merci pour ton intervention et tes explications.

    J'utilise la version "win-acme-v2.0.7.315"( la version la plus récente).
    J'utilise ce script pour créer mes certificats Let's Encrypt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    wacs.exe
      --source manual ^
      --host chez.jcz.fr ^
      --emailaddress artemus@jcz.fr ^
      --validation filesystem ^
      --webroot "F:\Site-01" ^
      --accepttos ^
      --usedefaulttaskuser ^
      --store pemfiles,pfxfile ^
      --pemfilespath "%FOLDER%\05.Store\02.Reel" ^
      --pfxpassword joel ^
      --pfxfilepath  "%FOLDER%\05.Store\02.Reel"
    Dans le répertoire "\05.Store\02.Reel", j'ai les certificats suivants :
    --> chez.jcz.fr.pfx
    --> chez.jcz.fr-chain.pem
    --> chez.jcz.fr-chain-only.pem
    --> chez.jcz.fr-crt.pem
    --> chez.jcz.fr-key.pem

    Ils sont tous à la même date et à la même heure.

    J'installe dans le magasin "Personnel" (my) le certificat "chez.jcz.fr.pfx".
    Dans apache, je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SSLCertificateFile    "${SRVROOT}/conf/Certificat/jcz.fr/chez.jcz.fr-crt.pem"
    SSLCertificateKeyFile "${SRVROOT}/conf/Certificat/jcz.fr/chez.jcz.fr-key.pem"
    SSLCACertificateFile  "${SRVROOT}/conf/Certificat/jcz.fr/chez.jcz.fr-chain.pem"
    SSLVerifyClient Require
    Si je mets "SSLVerifyClient" à "None", j'entre sans problème dans mon site et j'ai bien le cadenas.
    A priori, les certificats se terminant par ".pem" sont correctes.

    Si je mets "SSLVerifyClient" à "Require", j'ai mon certificat client qui apparait à la sélection que je valide, puis j'ai le message suivant :
    Ce site ne peut pas fournir de connexion sécuriséechez.jcz.fr n'a pas accepté votre certificat de connexion, ou vous ne l'avez pas fourni.
    Essayez de contacter l'administrateur système.
    ERR_BAD_SSL_CLIENT_AUTH_CERT
    Ce certificat client PFX a été créé par let's Encrypt et non par moi.
    Qu'est-ce qui ne va pas dans ma façon de procéder ?
    Est-ce tout simplement le certificat PFX de chez Let's Encrypt qui ne fonctionne pas ?

    Avec les certificats OpenSSL, ça fonctionne.

    J'ajoute le message d'erreur dans mes fichiers log :
    AH02039: Certificate Verification: Error (2): unable to get issuer certificate
    Cordialement.
    Artemus24.
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  5. #5
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 065
    Points
    19 065
    Par défaut
    Salut à tous.

    J'ai eu quelques échanges avec Let's Encrypt, sans succès. Let's Encrypt fournit un certificat client qui ne fonctionne pas. Incroyable !!!

    Après vérification, dans la chaine des certificats, l'autorité de certification "ISRG Root X1" n'est pas valide.
    Le certificat référencé dans la chaine n'est pas le même que celui qui se trouve dans le magasin "autorité de certification racines de confiance.
    Comment je le sais ? Ils n'ont pas la même période de validité.

    Tout ce que dit Let's Encrypt : "bla bla bla, nous ne gérons que des certificats de domaine, bla bla,bla". Incapable de fournir une solution !!!
    Dans ce cas, pourquoi Let's Encrypt fournit des certificats clients s'ils ne sont pas opérationnelles ?

    Je me retrouve boqué par la mise en place de la sécurité SSL car j'ai un rejet si mon certificat OpenSSL est auto-signé et le certificat client Let's Encrypt ne fonctionne pas. A lire sur le net, tout semble facile à mettre le SSL en oeuvre, mais pas chez moi.

    Comment font-ils les autres pour mettre en oeuvre la sécurité SSL ?

    Cordialement.
    Artemus24.
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  6. #6
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 065
    Points
    19 065
    Par défaut
    Salut à tous.

    Je clôture le sujet car j'ai résolu partiellement mon problème de certificats.

    Cordialement.
    Artemus24.
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fonctionnement des comparateurs de prix ?
    Par masseur dans le forum Services
    Réponses: 3
    Dernier message: 22/01/2006, 21h11
  2. Fonctionnement des attributions de droits sur table et bdd ?
    Par shako95 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 28/11/2005, 13h39
  3. Fonctionnement des WeakHashMap
    Par seiryujay dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 03/10/2005, 14h12
  4. Fonctionnement des fichiers.
    Par phoenix440 dans le forum Autres Logiciels
    Réponses: 7
    Dernier message: 29/05/2005, 15h36
  5. [langage] fonctionnement des Processus
    Par GMI3 dans le forum Langage
    Réponses: 3
    Dernier message: 19/09/2003, 11h12

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