Lectures :

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

Création d'une AC racine

  1. Préparation
    $ mkdir racine; cd racine; mkdir keys requests 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 :
    $ 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 :
    $ 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ésultat

  1. Résultats
    $ ls
    ca-cert.pem  ca-key.pem  certs  crlnumber  index.txt  keys  newcerts  openssl.cnf  requests  serial
  2. La clé privée est bien encryptée :
    $ 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-----
  3. Examen du certificat produit (vérification dates et extensions) :
    $ 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