Acest conținut face parte din seria: certificate SSL ale site-urilor Web și aplicația lor
Aveți grijă de articole noi din această serie.
Atunci când construim o rețea corporativă sigură pe baza SSL, una dintre principalele sarcini este gestionarea certificatelor, deoarece depinde de certificate, cine exact și cu ce autoritate va avea acces la resursele de rețea. Acest articol abordează subiecte cum ar fi implementarea propriului centru de certificare, semnarea și revocarea certificatelor client.
Atribuirea certificatelor SSL
Abrevieri utilizate frecvent.
- SSL - nivelul soclurilor securizate (strat socket securizat);
- CA - centrul de certificare (centrul autorității);
- CSR - cererea de semnare a certificatului;
- CRL - lista certificatelor revocate (lista de revocare a certificatelor);
- PKCS - standarde de criptografie publică.
După crearea propriului CA, în interiorul companiei va apărea un singur centru, a cărui semnătură în certificat va avea același efect ca semnătura VeriSign, dar pe scara companiei. Pentru a face acest lucru, este suficient să extindeți la toate computerele și dispozitivele mobile propriul certificat CA "nativ", declarându-l rădăcină, iar toate cheile care au fost sau vor fi semnate în viitor vor deveni automat "sigure", deoarece identitatea lor poate fi verificată. Acest lucru vă va permite, de asemenea, să creați liste de certificate revocate, care vor fi verificate automat atunci când este stabilită o conexiune securizată.
VeriSign de fabricare proprie
În general, procedura arată astfel: un client care dorește să primească un certificat generează un CSR (creează, de asemenea, o cheie de certificat) și trimite CSR către CA. CA primește CSR, semnează și creează un certificat în sine, care este trimis înapoi clientului. O altă opțiune este posibilă: clientul generează imediat o cheie de certificat, un certificat și toate acestea, împreună cu certificatul CA, sunt împachetate într-un fișier format PKCS # 12 (extensie .p12), protejat prin parolă și trimis clientului.
Când creați propriul CA, va trebui să creați o structură de directoare pentru a stoca următoarele date:
- cererile de certificare acceptate (RSC);
- certificatele semnate (CRT);
- lista certificatelor revocate (CRL);
- cheia privată a certificatului dvs. CA propriu.
Lista 1 arată structura directorului creată de modulul apache1 mod_ssl, dar puteți utiliza și nume arbitrare.
Listarea 1. Crearea de directoare pentru CA
După crearea directorilor necesari, va trebui să faceți modificări în fișierul de configurare OpenSSL. Listarea 2 prezintă trei fragmente openssl.cnf fișier: CA_default standard si doua ssl_server secțiune în plus și ssl_client.
Listarea 2. Fragmente ale fișierului de configurare openssl.cnf
În listare 2, pe lângă setarea căilor prestabilite, se adaugă două secțiuni noi - [ssl_server] și [ssl_client]. unde parametrii certificatului sunt specificați în funcție de modul de operare al programului care îl va utiliza. Serverele web și serverele de e-mail necesită un certificat de server, iar clienții de e-mail - viceversa, clientul.
Setarea parametrilor în secțiunile [ssl_server] și [ssl_client] produsă în conformitate cu omul x509v3_config. Atunci când utilizați parametrul crlDistributionPoints, valoarea acestuia trebuie să conțină o referință publică la CRL-ul acestui CA. CRL va fi folosit de programe care au o astfel de oportunitate (de exemplu, browsere web) pentru a verifica listele de certificate revocate, iar atunci când încercați să utilizați o conexiune de certificat revocat este stabilit nu va fi, în schimb, veți primi un mesaj de eroare.
În listare 2, numele fișierului de certificat CA este caserv.crt. numele fișierului cu cheia de certificat CA este caserv.key, iar numele fișierului cu CRL este cacrl.pem. Programele nu sunt în măsură să utilizeze fișierul CRL, folosind așa-numitul MCF fișier (fișier de control fuzionat - fișier de control combinat), care este un certificat consecutiv simplu și CRL pentru CA. Fișierul MCF este creat cu comanda cat. după cum urmează:
După efectuarea modificărilor în fișierul de configurare, trebuie să creați un certificat CA principal, care va semna toate celelalte certificate. Procesul de creare este prezentat în listare 3:
Listarea 3. Crearea unui certificat CA master
După crearea fișierului, caserv.key trebuie să fie plasat în directorul ssl.key. setați acreditările 0400 și protejați-l de accesul neautorizat. Fișierul caserv.crt. dimpotrivă, ar trebui să fie făcute publice și instalate ca un certificat rădăcină pentru toate dispozitivele care vor accesa resursele rețelei corporative.
De asemenea, necesitatea de a crea un fișier index de bază de date cu certificatul semnat (numele acestui fișier este specificat în secțiunea de bază de date parametrul [CA_default]) și un fișier cu numărul de serie curent (numele acestui fișier este specificat în secțiunea [CA_default] parametru de serie). Lista 4 prezintă comenzile pentru crearea acestor două fișiere.
Listarea 4. Crearea unui fișier index și a unui fișier al numărului serial actual al CA
După aceste acțiuni, CA creat este pregătit să semneze certificate.
Crearea de certificate
Primul mod de a crea un certificat este folosit atunci când este posibilă crearea unui CSR direct pe mașina client - acesta este, de obicei, un computer care rulează UNIX sau Linux. Lista 5 arată comenzile pentru crearea CSR.
Afișarea 5. Crearea CSR direct pe computerul client
Listarea 5 creează un nou CSR care va fi scris în fișierul myfile.pem. și o cheie de certificat RSA, lungime de 1024 biți. Suma de control CSR este calculată folosind algoritmul SHA1. Parametrul cel mai important este parametrul -nodes. ceea ce înseamnă că cheia nu va fi protejată prin parolă (certificatele serverului sunt de obicei încărcate atunci când se execută programele corespunzătoare și cererea de parolă poate opri procesul de pornire). În timpul creării CSR, vor fi adresate mai multe întrebări, răspunsurile cărora vor fi introduse în CSR și ulterior utilizate.
Fișierul generat CSR myfile.pem trebuie transferat pe serverul în care CA este instalat și plasat în subdirectorul ssl.csr. După aceasta, puteți să semnați certificatul, așa cum se arată în listare 6.
Listare 6. Semnarea certificatului client client în propriul CA
Pentru certificatul serverului, parametrul -extensii specifică numele secțiunii ssl_server. și pentru certificatul client - ssl_client. Două versiuni ale certificatului sunt create simultan: cu partea de text - myfile.pem și fără partea de text - myfile.crt. în timp ce certificatul într-un format poate fi tradus în alt format. Pentru a semna certificatul, va trebui să introduceți parola din certificatul principal al CA. După semnare, orice certificat gata (sau ambele) poate fi trimis înapoi clientului pentru utilizare în programe.
Cea de-a doua modalitate de a crea certificate este folosită atunci când nu puteți crea un CSR direct pe computerul client (sisteme non-UNIX, dispozitive mobile, diverse echipamente de rețea). În acest caz, computerul care rulează CA creează un CSR, și a semnat certificatul (echipa a crea un CSR și certificat de semnare este identic cu cele de mai sus, -extensions numai numele parametru este utilizat secțiunea ssl_client). După crearea certificatului, toate fișierele create plus certificatul CA în sine sunt colectate în arhiva formatului PKCS # 12 și transferate clientului. Acesta este cel mai vulnerabil loc în ceea ce privește securitatea: certificatul este trimis împreună cu cheia, iar arhiva este protejată doar cu o parolă! Comanda pentru crearea arhivei PKCS # 12 este afișată în listare 7:
Listarea 7. Crearea arhivei PKCS # 12
Listarea 7 creează arhiva myfile.p12 cu o parolă 123456. care conține certificatul myfile.crt. cheia de certificat myfile.key și tasta CA caserv.crt. Această arhivă este transferată clientului și instalată prin sistemul de operare client.
Revocarea certificatelor. Listele certificatelor revocate
Trebuie notat că operația de revocare însăși nu creează și nu actualizează această listă, deoarece efectuează doar operațiile necesare în fișierul index specificat în parametrul bazei de date a secțiunii CA_default. Și pentru a actualiza lista, va trebui să efectuați o acțiune separată. Revocarea certificatului se efectuează în modul descris mai jos:
În acest exemplu, certificatul revocat este în fișierul myfile.pem printre alte certificate care sunt semnate de CA. Ca motiv pentru revocare (crl_reason), puteți specifica următoarele valori:
- nespecificată - această opțiune este utilizată atunci când valoarea parametrului este incorectă sau omisă;
- cheie compromis, cacompromise / - compromisul cheii sau CA;
- afiliere modificată - trecerea la alt CA;
- înlocuit - înlocuirea certificatului (de exemplu, după expirarea termenului);
- încetarea funcționării - încetarea serviciului.
După revocarea certificatului, trebuie să actualizați lista certificatelor revocate sau să creați una dacă nu a existat o singură recenzie, după cum se arată mai jos: