Modifications entre les versions 3 et 7 (s'étendant sur 4 versions)
Version 3 à la date du 2008-02-25 14:17:03
Taille: 2095
Éditeur: ThomasNoël
Commentaire: ouf, merci HSC c'est plus clair ainsi
Version 7 à la date du 2008-02-25 15:34:22
Taille: 5046
Éditeur: ThomasNoël
Commentaire: -text pour avec des requetes plus claires
Texte supprimé. Texte ajouté.
Ligne 12: Ligne 12:
$ mkdir racine; cd racine; mkdir keys requests certs newcerts ; echo 01 > serial ; echo 01 > crlnumber ; touch index.txt .rand racine$ mkdir racine; cd racine; mkdir certs newcerts ; echo 01 > serial ; echo 01 > crlnumber ; touch index.txt .rand
Ligne 16: Ligne 16:
$ openssl genrsa -out ca-key.pem -des3 2048 racine$ openssl genrsa -out ca-key.pem -des3 2048
Ligne 25: Ligne 25:
$ 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 -new -x509 -key ca-key.pem -out ca-cert.pem -text -config ../openssl.cnf -extensions ca_racine -days $((20*365))
Ligne 37: Ligne 37:
= Résultat = == Résultats ==
Ligne 39: Ligne 39:
 1. Résultats
 {{{
$ ls
ca-cert.pem ca-key.pem certs crlnumber index.txt keys newcerts openssl.cnf requests serial
}}}
Ligne 46: Ligne 41:
$ cat ca-key.pem racine$ cat ca-key.pem
Ligne 58: Ligne 53:
$ openssl x509 -text -in ca-cert.pem -noout # liste de toutes les données du certificat, notamment dates et extensions
$ openssl x509 -purpose -in ca-cert.pem -noout # liste des utilisations possibles du certificat
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
Ligne 61: Ligne 56:

= Création d'une AC régionale =

 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é
}}}
 1. Etablissement de la demande de certificat
 {{{
region$ openssl req -new -key ca-key.pem -out ca-request.pem -text -config ../openssl.cnf
}}}
 1. Le fichier `ca-request.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 -out certs/ca-regionX.pem -config ../openssl.cnf -extensions ca_region -infiles ca-req-BAO.pem
}}}

Le fichier `certs/ca-regionX.pem` est renvoyé à l'autorité régionale, qui le renomme `ca-cert.pem`.

/* vérifications ... */

= Emission de certificats =

== 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 -extensions server -out certs/serveur-cert.pem -infiles serveur-request.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
}}}

= Gestion des cRLs =

= fabrication du CAPath AUF =

= 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 */

Lectures :

Fichier openssl.cnf modèle (en cours d'écriture) : openssl.cnf

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. Création du certificat auto-signé (on est sur la racine) avec les extensions spécifiques :
    racine$ openssl req -new -x509 -key ca-key.pem -out ca-cert.pem -text -config ../openssl.cnf -extensions ca_racine -days $((20*365))
    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]:

Résultats

  1. La clé privée est bien encryptée :
    racine$ cat ca-key.pem
    -----BEGIN RSA PRIVATE KEY-----
    Proc-Type: 4,ENCRYPTED
    DEK-Info: DES-EDE3-CBC,4BD4AF9549CA734C
    
    hsGEs99W6Rll5+x2WJlkcoeMpMXihgFaeKErvT/UWor/sJuMkLAZsnP1sRyd/vPf
    (...)
    DoO4h8lbMXwA6TtOC9uklFghpAmPQpbaYJ8IQMD+YMM=
    -----END RSA PRIVATE KEY-----
  2. Examen du certificat produit (vérification dates et 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

  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 -new -key ca-key.pem -out ca-request.pem -text -config ../openssl.cnf 
  3. Le fichier ca-request.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 -out certs/ca-regionX.pem -config ../openssl.cnf -extensions ca_region -infiles ca-req-BAO.pem

Le fichier certs/ca-regionX.pem est renvoyé à l'autorité régionale, qui le renomme ca-cert.pem.

Emission de certificats

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 -extensions server -out certs/serveur-cert.pem  -infiles serveur-request.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

Gestion des cRLs

fabrication du CAPath AUF

Transfert des données

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