Modifications entre les versions 14 et 19 (s'étendant sur 5 versions)
Version 14 à la date du 2008-02-27 10:23:02
Taille: 5111
Éditeur: ThomasNoël
Commentaire: ça sera surtout une page "pour mémoire", de toute façon, une fois la PKI en place
Version 19 à la date du 2008-03-10 10:40:02
Taille: 3476
Éditeur: ThomasNoël
Commentaire:
Texte supprimé. Texte ajouté.
Ligne 1: Ligne 1:
## page was copied from Projet/PKI/NotesDeThomas
Lectures :
 * http://www.hsc.fr/ressources/breves/ssl_configuration.html.fr
 * http://www.faqs.org/rfcs/rfc2459.html miam miam que du bonheur


Fichier openssl.cnf modèle (en cours d'écriture) : [[attachment:openssl.cnf]]
Ligne 24: Ligne 16:
 1. Création du certificat auto-signé (on est sur la racine) avec les extensions spécifiques :  1. Etablissement de la demande de certificat (qui sera ensuite auto-signé) :
Ligne 26: Ligne 18:
racine$ openssl req -new -x509 -key ca-key.pem -out ca-cert.pem -text -config ../openssl.cnf -extensions ca_racine -days $((20*365)) racine$ openssl req -config ../openssl.cnf -new -key ca-key.pem -out request-ca-racine.pem -text
Ligne 37: Ligne 29:
 1. Auto-signature du certificat (on est sur la racine) avec les extensions spécifiques (ca_racine):
 {{{
racine$ openssl ca -config ../openssl.cnf -in request-ca-racine.pem -out ca-cert.pem -selfsign -keyfile ca-key.pem -extensions ca_racine
Using configuration from ../openssl.cnf
Enter pass phrase for ca-key.pem:
Check that the request matches the signature
Signature ok
Certificate Details:
    (...)
Certificate is to be certified until Mar 5 10:20:49 2018 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
}}}
Ligne 40: Ligne 47:
Examen du certificat produit (vérification dates et extensions) : Examen du certificat produit (vérification des dates et des extensions) :
Ligne 47: Ligne 54:

Dans ce qui suit, remplacer `regionX` par le nom abrégé de la région.
Ligne 55: Ligne 64:
region$ openssl req -new -key ca-key.pem -out ca-request.pem -text -config ../openssl.cnf region$ openssl req -config ../openssl.cnf -new -key ca-key.pem -text -out request-ca-regionX.pem
Enter pass phrase for ca-key.pem:
(... exemple pour le BAO ...)
Code ISO du pays (2 lettres) [CA]:SN
Province ou region (nom complet) [Quebec]:.
Ville (nom complet) [Montreal]:Dakar
Organisation [AUF]:
Unite (implantation, service, programme, ...) [DRI]:
Nom canonique (TOUJOURS TRES IMPORTANT) [AUF-AC-RACINE]:AUF-AC-BAO
Adresse electronique (email) [rpv@auf.org]:
Ligne 57: Ligne 75:
 1. Le fichier `ca-request.pem` est la demande : il doit être envoyé à l'autorité de certification racine  1. Le fichier `request-ca-regionX.pem` est la demande : il doit être envoyé à l'autorité de certification racine
Ligne 61: Ligne 79:
racine$ openssl ca -config ../openssl.cnf -in ca-req-BAO.pem -extensions ca_region -out certs/ca-regionX.pem racine$ openssl ca -config ../openssl.cnf -in request-ca-regionX.pem -extensions ca_region -out certs/ca-regionX.pem
Ligne 64: Ligne 82:
Le fichier `certs/ca-regionX.pem` est renvoyé à l'autorité régionale, qui le renomme `ca-cert.pem`. Le fichier `certs/ca-regionX.pem` est renvoyé à l'autorité régionale, qui le renomme `ca-cert.pem` (certificat, à côté de `ca-key.pem` qui est la clé privée correspondante).
Ligne 67: Ligne 85:

= Emission de certificats =

== Certificat pour un serveur ==

Sur la machine cible, création de la clé et de la demande de certificat :
 {{{
serveur$ openssl genrsa -out serveur-key.pem -des3 1024
serveur$ openssl req -new -key serveur-key.pem -out serveur-request.pem -text -config ../openssl.cnf
Enter pass phrase for serveur-key.pem:
(...)
Code ISO du pays (2 lettres) [CA]: GN
Province ou region (nom complet) [Quebec]: .
Ville (nom complet) [Montreal]: Conakry
Organisation [AUF]:
Unite (implantation, service, programme, ...) [DRI]:
Nom canonique (TOUJOURS TRES IMPORTANT) [AUF-AC-RACINE]: www.gn.auf.org
Adresse electronique (email) [rpv@auf.org]: www@gn.auf.org
}}}
La demande `serveur-request.pem` doit être envoyée à l'autorité régionale, qui la signera pour en faire un certificat.

'''Sur l'AC régionale''', signature de la demande et création du certificat `certs/serveur.pem` :
 {{{
region$ openssl ca -config ../openssl.cnf -in serveur-request.pem -extensions server -out certs/serveur-cert.pem
}}}

Le certificat `certs/serveur-cert.pem` est alors renvoyé au serveur.

Note 1 : par défaut la clé `serveur-key.pem` générée sur le serveur est cryptée. Cela peut être problématique si elle doit être utilisée par un serveur qui doit démarrer automatiquement. Dans ce cas on peut vouloir obtenir une version non cryptée de la clé : `openssl rsa -in serveur-key.pem -out serveur-clear.pem`

Note 2 : pour un serveur SSL avec plusieurs noms possibles (cas d'un serveur web avec plusieurs !VirtualHost sur une seule adresse IP), il faut le préciser lors de la demande de certificat. Pour cela, positionner la variable d'environnement `OPENSSL_ALT` et utiliser les extensions `alt_req` :
 {{{
serveur$ OPENSSL_ALT="DNS:www.site1.org,DNS:www.site2.org,DNS:www.site3.org" openssl req -new -key serveur-key.pem -out serveur-request.pem -text -config ../openssl.cnf -reqexts alt_req
}}}

== Client ==

Même procédure. La distinction a lieu au niveau de l'autorité de certification, qui choisira l'extension `client`.

= Gestion des cRLs =

= fabrication du CAPath AUF =

/* grmmbll va encore falloir réviser là */

= Transfert des données =

/* un petit blabla sur les bonnes façons (les moins pires) de transférer et valider la transmission des demandes et des certificats... ça ne sera sans doute pas moi qui rédigera ça ;) */
/* surtout que ce ne sera sans doute pas pareil suivant les régions... ;-) */

Création d'une AC racine

  1. Préparation
    racine$ mkdir racine; cd racine; mkdir certs newcerts ; echo 01 > serial ; echo 01 > crlnumber ; touch index.txt .rand 
  2. Création d'une clef privée 2048 bits, cryptée par un mot de passe :
    racine$ openssl genrsa -out ca-key.pem -des3 2048
    Generating RSA private key, 2048 bit long modulus
    ......................+++
    e is 65537 (0x10001)
    Enter pass phrase for ca-key.pem: 
    Verifying - Enter pass phrase for ca-key.pem:
  3. Etablissement de la demande de certificat (qui sera ensuite auto-signé) :
    racine$ openssl req -config ../openssl.cnf -new -key ca-key.pem -out request-ca-racine.pem -text
    Enter pass phrase for ca-key.pem:
    (...)
    Code ISO du pays (2 lettres) [CA]:
    Province ou region (nom complet) [Quebec]:
    Ville (nom complet) [Montreal]:
    Organisation [AUF]:
    Unite (implantation, service, programme, ...) [DRI]:
    Nom canonique (TOUJOURS TRES IMPORTANT) [AUF-AC-RACINE]:
    Adresse electronique (email) [rpv@auf.org]:
  4. Auto-signature du certificat (on est sur la racine) avec les extensions spécifiques (ca_racine):
    racine$ openssl ca -config ../openssl.cnf -in request-ca-racine.pem -out ca-cert.pem -selfsign -keyfile ca-key.pem -extensions ca_racine
    Using configuration from ../openssl.cnf
    Enter pass phrase for ca-key.pem:
    Check that the request matches the signature
    Signature ok
    Certificate Details:
        (...)
    Certificate is to be certified until Mar  5 10:20:49 2018 GMT (3650 days)
    Sign the certificate? [y/n]:y
    1 out of 1 certificate requests certified, commit? [y/n]y
    Write out database with 1 new entries
    Data Base Updated

Vérification des résultats

Examen du certificat produit (vérification des dates et des extensions) :

  • racine$ openssl x509 -text -in ca-cert.pem -noout     # liste de toutes les données du certificat, notamment dates et extensions
    racine$ openssl x509 -purpose -in ca-cert.pem -noout  # liste des utilisations possibles du certificat

Création d'une AC régionale

Dans ce qui suit, remplacer regionX par le nom abrégé de la région.

  1. Préparation
    region$ mkdir regionX; cd regionX; mkdir certs newcerts ; echo 01 > serial ; echo 01 > crlnumber ; touch index.txt .rand 
    region$ openssl genrsa -out ca-key.pem -des3 2048    # création de la clé
  2. Etablissement de la demande de certificat
    region$ openssl req -config ../openssl.cnf -new -key ca-key.pem -text -out request-ca-regionX.pem
    Enter pass phrase for ca-key.pem:
    (... exemple pour le BAO ...)
    Code ISO du pays (2 lettres) [CA]:SN
    Province ou region (nom complet) [Quebec]:.
    Ville (nom complet) [Montreal]:Dakar
    Organisation [AUF]:
    Unite (implantation, service, programme, ...) [DRI]:
    Nom canonique (TOUJOURS TRES IMPORTANT) [AUF-AC-RACINE]:AUF-AC-BAO
    Adresse electronique (email) [rpv@auf.org]:
  3. Le fichier request-ca-regionX.pem est la demande : il doit être envoyé à l'autorité de certification racine

Sur l'AC racine, signature de la demande pour création d'un certificat certs/ca-regionX.pem :

  • racine$ openssl ca -config ../openssl.cnf -in request-ca-regionX.pem -extensions ca_region -out certs/ca-regionX.pem

Le fichier certs/ca-regionX.pem est renvoyé à l'autorité régionale, qui le renomme ca-cert.pem (certificat, à côté de ca-key.pem qui est la clé privée correspondante).

Projet/PKI/Archives/PKIOpenSSL/CréationDesAutorités (dernière édition le 2008-10-14 09:26:15 par ThomasNoël)