Afficher la révision 2
 Quelques rappels pour créer un CA auto-signé puis un certificat signé par cette CA
<2012-02-29 13:10:24 cmic>
 
Openssl vite fait ou les etapes de base pour creer un jeu de clefs
publique/privée puis des certificats.
 
 
-  Creation d'un jeu de clefs (publique et privée dans un seul fichier)
  
 chiffree en aes256, encodée en PEM (Base 64)
 
 
 prompt>openssl genrsa -aes256 -out macle.pem 1024
 Generating RSA private key, 1024 bit long modulus
 ........................++++++
 .++++++
 e is 65537 (0x10001)
 Enter pass phrase for macle.pem:
 Verifying - Enter pass phrase for macle.pem:
 
NB: mot de passe : passphrase
 
NB: macle.pem est au format PEM et lisible 
 
NB: au lieu de -aes256, on peut choisir -des, -des3, etc
 
 
-  visualisation de ce fichier
  
 
 prompt>openssl rsa -in macle.pem -text
 .. le mot de passe est demandé.
 
 
-  exportation de la clef publique
  
 
 prompt>openssl rsa -in macle.pem -pubout -out maclepub.pem
 Enter pass phrase for macle.pem:
 writing RSA key
 babel/usr/share/ssl/misc >more maclepub.pem
 -----BEGIN PUBLIC KEY-----
 MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDSYXEnnf4FteUCY2MC8XMtt61T
 3N0T9jiPNSuH0nqrSyoZ/vh0JHb+buEHmh/glV7azdId9AYwUNY1Pkh+vX/+IL02
 pxFDVJPrtylNTcE6OsI4wyGxvYm6KfNqc0eQyYdWi5t3zmlac9IDSjL9qakgcmw5
 nzDL7xktmmbDxd91hQIDAQAB
 -----END PUBLIC KEY-----
 
 
-  FIXME faire idem un jeu de cle pour le correspondant sacle.pem saclepub.pem
  
 
 
-  chiffrer des donnes avec la clef rsa.
  
 
 prompt>openssl rsautl -encrypt -in getmac.pl -inkey macle.pem -out getmac.pl.ssl
 
NB Le fichier a chiffrer doit avoir une taille inferieure a la taille de la cle -11B (1024b soit 128B-11)
 
 
-  pour des fichiers plus gros, chiffer, protéger par un mot de passe. Puis chiffrer le mot de passe avec la clef privée :
  
 
-  chiffrer (option -e) le texte an blowfish (option -bf)
  
 
 
 prompt>openssl enc -bf -in getmac.pl -salt -e -out getmac.pl.ssl 
 enter bf-cbc encryption password: 
 Verifying - enter bf-cbc encryption password: 
 
NB: mot de passe toutUbu
 
 
-  mettre le mot de passe dans le fichier pass.txt. Chiffrer ce fichier avec la clef publique du destinataire :
  
 
 
 prompt>openssl rsautl -encrypt -pubin -inkey saclepub.pem -in pass.txt -out pass.txt.ssl
 
 
-  transmettre le pass.txt.ssl et getmac.ssl
  
 
 
-  dechiffrage du fichier mot de passe avec la clef privee du correspondant : 
  
 
 
 prompt>openssl rsautl -decrypt -in pass.txt.ssl -inkey sacle.pem -out pass.txt
 
 
-  dechiffrage du texte avec le fichier du mot passe pass.txt ( sans "-pass file:pass.txt", la commande demandera le mot de passe)
  
 
 
 prompt>openssl enc -bf -d -in getmac.pl.ssl -salt -pass file:pass.txt -out getmac2.pl
 
 
 
-  signer un fichier : pour petits documents, ok. 
  
 
-  Pour les gros documents, on calcule un hash
  
 
 
 prompt>openssl dgst -md5 getmac.pl > getmac.pl.md5 
 
 
-  On signe ensuite le hash de ce document avec la cle privee :
  
 
 
 prompt>openssl rsautl -sign -in getmac.pl.md5 -inkey macle.pem -out getmac.pl.signed
 
 
-  Le correpondant verifie que le hash du document signed est le même que le hash du document original (getmac.pl.md5 tmac2.pl.md5 identiques) :
  
 
 
 prompt>openssl rsautl -verify -in getmac.pl.signed -pubin -inkey maclepub.pem -out getmac2.pl.md5 
 
 
 
-  Créer un certificat d'autorité de certification (auto-signé)
  
 
-  Creation d'un jeu public/privé et chiffre en des3
  
 
 
 prompt>openssl grersa -des3 -out monCA.pem
 
 
 passphrase : passCA
 
 
-  Création du certificat auto-signe
  
 
 
 prompt>>openssl req -new -x509 -days 700 -key monCA.pem -out monCA.crt
 Enter pass phrase for monCA.pem:
 You are about to be asked to enter information that will be incorporated
 into your certificate request.
 What you are about to enter is what is called a Distinguished Name or a DN.
 There are quite a few fields but you can leave some blank
 For some fields there will be a default value,
 If you enter '.', the field will be left blank.
 Country Name (2 letter code) [AU]:FR
 State or Province Name (full name) [Some-State]:france
 Locality Name (eg, city) []:bron
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:MaCompagnie?
 Organizational Unit Name (eg, section) []:unit1
 Common Name (eg, YOUR name) []:CA
 Email Address []:cmic@abc.fr
 
 
 
-  Creation d'un certificat serveur
  
 
-  Creation d'une demande de signature de certificat pour macle.pem (csr)
  
 
 
 prompt>openssl req -new -key macle.pem  -out macle.csr
 Enter pass phrase for macle.pem:
 You are about to be asked to enter information that will be incorporated
 into your certificate request.
 What you are about to enter is what is called a Distinguished Name or a DN.
 There are quite a few fields but you can leave some blank
 For some fields there will be a default value,
 If you enter '.', the field will be left blank.
 Country Name (2 letter code) [AU]:FR
 State or Province Name (full name) [Some-State]:france
 Locality Name (eg, city) []:antibes
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:MyBigComany?
 Organizational Unit Name (eg, section) []:info
 Common Name (eg, YOUR name) []:MBC corp
 Email Address []:boss@mbc-corp.net   
 
 
 Please enter the following 'extra' attributes
 to be sent with your certificate request
 A challenge password []:challenge
 An optional company name []:
 
NB: Le fichier macle.csr est lisible
 
 
-  Signature du certificat macle par l'autorite monCA
  
 
 
 prompt>openssl x509 -req -in macle.csr -out macle.crt -CA monCA.crt -CAkey monCA.pem          -CAcreateserial -CAserial ca.srl
 Signature ok
 subject=/C=FR/ST=france/L=antibes/O=MyBigComany?/OU=info/CN=MBC corp/emailAddress=boss@mbc-corp.net
 Getting CA Private Key
 Enter pass phrase for monCA.pem:
 
NB: le fichier macle.crt est lisible
 
 
-  Verification de la validite du certificat :
  
 
 
 prompt>openssl verifi -CAfile mpnCA.crt macle.crt
 macle.crt: OK
 
 
-  Conversion du certificat de PEM en PKCS12. Le format PKCS12 (pas vraiment un standard) est utilisé comme format pour les certificats X509
  
 
 prompt> openssl pkcs12 -export -out macle.p12 -inkey macle.pem -in macle.crt
 Enter pass phrase for macle.pem:
 Enter Export Password:
 Verifying - Enter Export Password:
 
NB: Export Password : exportpass
 
 
-  Recuperer le certificat eu format PEM a partir du certificat PKCS12
  
 
 
 prompt>openssl pkcs12 -clcerts -nokeys -in macle.p12 -out macle2.crt
 Enter Import Password:
 MAC verified OK
 
NB: import password : exportpass
 
NB: macle.crt et macle2.crt sont identiques.
 
 
-  On récupère la cle privee depuis le certificat PKCS12
  
 
 
 prompt>>openssl pkcs12 -nocerts -in macle.p12 -out maclepriv.pem
 Enter Import Password:
 MAC verified OK
 Enter PEM pass phrase:
 Verifying - Enter PEM pass phrase:
 
NB: import password: exportpass
 
NB: PEM passphrase: blabla . On peut choisir un nouveau mot de passe pour coder ce nouvel exemplaire (idem à macle.pem) de la clef privee.
 
 
-  On peut verifier que c'est bien la meme clef privee en comparant f1 et f2 :
  
 
 prompt>openssl rsa -in maclepriv.pem -text > f1
 prompt>openssl rsa -in macle.pem -text > f2
 prompt>diff f1 f2
 
 
-  Extraction du contenu du certificat PKCS12
  
 
  prompt>openssl pkcs12 -in macle.p12 -out cert-et-clepriv.pem -nodes 
  Enter Import Password:
  MAC verified OK
 
NB: Import Password: exportpass
 
NB: Le fichier cert-et-clepriv.pem contient la clef privée et le certificat. L'option -nodes permet de garder ce fichier non crypté.
 
  |