5055
Commentaire: pas d'accord pour -text => incite à baser la signature sur un texte modifiable => problème de sécurité => plutôt faire un openssl x509 -noout -text à réception de la demande
|
5111
ça sera surtout une page "pour mémoire", de toute façon, une fois la PKI en place
|
Texte supprimé. | Texte ajouté. |
Ligne 1: | Ligne 1: |
## page was copied from Projet/PKI/NotesDeThomas | |
Ligne 25: | Ligne 26: |
racine$ openssl req -new -x509 -key ca-key.pem -out ca-cert.pem -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)) |
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) : openssl.cnf
Création d'une AC racine
- Préparation
racine$ mkdir racine; cd racine; mkdir certs newcerts ; echo 01 > serial ; echo 01 > crlnumber ; touch index.txt .rand
- 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:
- 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]:
Vérification des résultats
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
- 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é
- Etablissement de la demande de certificat
region$ openssl req -new -key ca-key.pem -out ca-request.pem -text -config ../openssl.cnf
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 -config ../openssl.cnf -in ca-req-BAO.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.
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
Transfert des données