Posted on august 16, 2011 - by Laurentiu Sandu-Bufi
Cum sa va creeati propriu certificat cu OpenSSL si semna documente sau sa va autentificati
Daca o sa va aveti timp sa cautati tools-uri pentru a va creea propriu cetificat cu care sa va autentificati sau semna documente ve-ti sesiza ca sunt foarte multe. Eu am ales sa utilizez OpenSSL pentru a-mi creea un root CA.
Mai intai generati un key de 4096 biti RSA pentru CA root-ul care il salvat sub denumirea ca.key
openssl genrsa -out ca.key 4096
Generating RSA private key, 4096 bit long modulus
………………………………………………………………………..++
………………………………………………………………++
e is 65537 (0×10001)
Daca doriti sa va protejati key-ul cu parola adugati si obtiunea -des3.
Urmatorul pas este creierea unui “self-signed root CA certificate” denumit ca.crt, aveti nevoie sa da-ti identitate CA root-ului cu ajutorul comenzii:
openssl req -new -x509 -days 1826 -key ca.key -out ca.crt
O sa introduceti informatiile care sunt cerute ce urmeaza a fi incroporate in cererea de certificat.
Cea ce o sa introduceti este denumit “Distinguished Name”(Nume Distins) sau “DN”.
Sunt ceva campuri de completat dar poti lasa cateva fara se le completezi.
Pentru cateva am ales sa le las asa cum sunt ele definite “by default”.
Daca introduceti ‘.’, campul o sa fie lasat necompletat.
Country Name (2 letter code) [GB]:RO
State or Province Name (full name) [Berkshire]:Romania
Locality Name (eg, city) [Newbury]:Galati
Organization Name (eg, company) [My Company Ltd]:https://EuropBusiness.Ro
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server’s hostname) []:Europ Business (https://EuropBusiness.Ro)
Email Address []:Adresa companiei de posta
Obtiunea -x509 este utilizata pentru a creea un certificat “self-signed”, 1826 zile in care certificatul este valid pentru 5 ani.

Urmatorul pas: creierea unui certificat subordonat unui CA care sa se utilizeze la semnarea documentelor sau autentificare. Prima data va trebui sa generam un key:
openssl genrsa -out ia.key 4096
Generating RSA private key, 4096 bit long modulus
…..++
…………………………………………………………………..++
e is 65537 (0×10001)
Urmatorul pas este creiarea unei cereri de certificat subordonat unui CA:
openssl req -new -key ia.key -out ia.csr
O sa introduceti informatiile care sunt cerute ce urmeaza a fi incroporate in cererea de certificat.
Cea ce o sa introduceti este denumit “Distinguished Name”(Nume Distins) sau “DN”.
Sunt ceva campuri de completat dar poti lasa cateva fara se le completezi.
Pentru cateva am ales sa le las asa cum sunt ele definite “by default”.
Daca introduceti ‘.’, campul o sa fie lasat necompletat.
Country Name (2 letter code) [GB]:RO
State or Province Name (full name) [Berkshire]:Romania
Locality Name (eg, city) [Newbury]:Galti
Organization Name (eg, company) [My Company Ltd]:https://EuropBusiness.Ro
Organizational Unit Name (eg, section) []:Europ Business Code Signing (https://EuropBusiness.Ro)
Common Name (eg, your name or your server’s hostname) []: Numele si Prenumele
Email Address []:Adresa dumneaviastra de mailPlease enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Urmatorul pas consituie procesarea cererii pentru certificatul subordonat CA si sa fie semnat de root CA
openssl x509 -req -days 730 -in ia.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out ia.crt
Signature ok
subject=/C=BE/ST=Brussels/L=Brussels/O=https://DidierStevens.com/OU=Didier Stevens Code Signing (https://DidierStevens.com)/emailAddress=didier stevens Google mail
Getting CA Private Key
Acest certificat va fi valid 2 ani (730 de zile) si la care am decis sa am propriul meu serial 01 pentru acest certificat (-set_serial 01). Pentru ca root CA, am lasat ca OpenSSL sa genereze un numar serial generat de OpenSSL.
Cam asta e tot, dar bineteles exista mai multe obtiuni care nu au fost folosite in exemplu de mai sus. Pentru a le descoperi va invit sa aruncati o privire pe documentatia OpenSSL pentru mai multe. De exemplu in exemplu de mai sus nu s-a restrictionat ca certificatul meu sa fie folosit doar ca semnatura digitala. Poate fi folosit pentru orice, chiar si pentru a face un alt certificat subordonat CA. Cand cumparatu un certificat pentru a semna cu el, compania care vi-l emite limiteaza utilizarea lui doar pentru semnaturi electronice.

Pentru a utiliza acest certificat subordonat pentru a va autetifica cu el cu ajutorul tools-urile Microsoft trebuie sa aveti pachetul cu cheia si certificatul intr-un fisier PKCS12:
openssl pkcs12 -export -out ia.p12 -inkey ia.key -in ia.crt -chain -CAfile ca.crt
Enter Export Password:
Verifying – Enter Export Password:
Pentru a semna executabile in Windows cu ajutorul utilitarelor pentru semnaturi: instalati fisierul ia.p12 in depoztul de certificate (ex: dublu clic pe el), si apoi folositi utilitarul pas cu pas pentru a semna fisierul PE.
Am folosit acest proces de generare pentru a-mi genera propriu meu cod de semnaturi si pentru intelege procesul de autentificare cu certificate.
Sursa: http://blog.didierstevens.com/2008/12/30/howto-make-your-own-cert-with-openssl/

Visit My Website
septembrie 13, 2011
Permalink
[...] pas este creearea certificatului pasi ii puteti urmari intr-un post anterior: Cum sa va creazati propriu certificat cu OpenSSL si semneaza documente sau sa va autentificati, dupa ce va-ti creeat primul certificat pentru client puteti verifica autentificare cu [...]