Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Creearea unui certificat

Pentru a actiona ca un root CA, va trebui sa creeam certificatul. Fisierul ca.key contine cheia privata a CA-ului, pe cand ca.crt este certificatul public.

openssl req -new -x509 -keyout ca.key -out ca.crt

Va trebui sa completati toate campurile. La domain puneti upb-cert-sign.com

Acum putem actiona ca un root CA, suntem gata să semnăm certificate digitale pentru clienții noștri.

Primul nostru client este o companie ce vrea sa administreze domeniul vine-vacanta.com. Pentru ca această companie să obțină un certificat digital de la o Autoritate de Certificare, trebuie să parcurgă trei pași.

  1. Generarea unei perechi de chei publica/privata. Compania trebuie mai întâi să-și creeze propria pereche de chei public/privat. Putem rula următoarea comandă pentru a genera o pereche de chei RSA (atât cheia privată, cât și cea publică). De asemenea, vi se va solicita să furnizați o parolă pentru a cripta cheia privată (folosind algoritmul de criptare AES-128, așa cum este specificat în opțiunea de comandă). Cheile vor fi stocate în fișierul server.key.

    $ openssl genrsa -aes128 -out server.key 2048
    

    Pentru a vedea continutul in format text a lui server.key puteti folosi comanda openssl rsa -in server.key -text.

  2. Generarea unui Certificate Signing Request (CSR). Odată ce compania are fișierul cheie, ar trebui să genereze o Cerere de Semnare a Certificatului (CSR), care include în esență cheia publică a companiei. CSR va fi trimisă Autorității de Certificare, care va genera un certificat pentru cheie (de obicei, după ce se asigură că informațiile de identitate din CSR corespund cu adevărata identitate a serverului). Vom folosi vine-vacanta.com ca nume comun al cererii de certificat.

    $ openssl req -new -key server.key -out server.csr
    

    Va trebui sa completati toate campurile.

  3. Generarea certificatelor. Fișierul CSR trebuie să aibă semnătura Autorității de Certificare pentru a forma un certificat. În lumea reală, fișierele CSR sunt de obicei trimise unei Autorități de Certificare de încredere pentru semnătura lor. În acest laborator, vom folosi propria noastră Autoritate de Certificare de încredere pentru a genera certificate. Următoarea comandă transformă cererea de semnătură a certificatului (server.csr) într-un certificat X509 (server.crt), folosind ca.crt și ca.key ale Autorității de Certificare:

    $ sudo openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key
    

    Cel mai probabil o sa primiti o eroare legata de lipsa unui fisier index.txt si serial. Va trebui sa le creati astfel (atentie, directorul poate fi diferit)

    sudo touch /etc/pki/CA/index.txt
    sudo echo "1000" > /etc/pki/CA/serial
    

    Pe unele versiuni de Ubuntu/Debian, OpenSSL se așteaptă ca aceste fișiere să existe sub directorul demoCA din folderul curent, iar în el să existe subdirectorul newcerts. În acest caz, problema se rezolva cu următoarele comenzi:

    mkdir -p demoCA/newcerts
    touch demoCA/index.txt
    echo "1000" > demoCA/serial
    

    Până la acest moment, ierarhia de fișiere ar trebui să arate ca mai jos:

    dorinel@new-buntu:~/pki$ tree -F
    ./
    ├── ca.crt
    ├── ca.key
    ├── demoCA/
    │   ├── index.txt
    │   ├── newcerts/
    │   └── serial
    ├── server.csr
    └── server.key
    
    3 directories, 6 files
    

Exercitiu 3. Generati un certificat pentru domeniul vine-vacanta.com. Vom adauga urmatoarea intrare in /etc/hosts pentru a il face pe Linux sa faca legatura dintre vine-vacanta.com si 127.0.0.1.

Pentru a putea folosi certificatul in directorul curent, vom rula:

openssl x509 -in server.crt -noout -subject_hash
127.0.0.1 vine-vacanta.com