Handcode crea certificate OpenSSL

Crearea de certificate: OpenSSL

Utilizarea practică a acestui articol, să învețe cum să rapid a început cu certificate SSL, utilizând software-ul OpenSSL. Desigur, eliberarea unui certificat de către o Autoritățile de certificare speciale, și nu trebuie să vă faceți griji cu privire la detaliile creării certificatului, în special în versiunea de producție, încă mai face o cerere pentru un certificat la unul dintre astfel de centre, dar în modul de depanare / testare, puteți utiliza certificatele de făcut propria (i o dată și a fost nevoie). Nu vă voi spune că certificatul este și ceea ce este SSL aveți nevoie de ea, dar pentru înțelegerea articolului, este necesar să se cunoască. Pentru o mai bună înțelegere a acestui articol, ne vom concentra pe câțiva pași de bază:
  1. Descărcați și instalați OpenSSL.
  2. Configurarea la locul de muncă.
  3. CA va emite un certificat pentru lista sa de certificate revocate CRL.
  4. Să facem o cerere de certificat pentru autoritatea noastră de certificare.
  5. Vom emite un certificat, la cerere.
  6. Adăugăm certificatele noastre în depozitul de certificate.

1. Descărcați de pe site-ul cea mai recentă versiune de OpenSSL, și instalați-l pe hard disk.

2. Pentru comoditate, se adaugă la variabila PATH calea completă către directorul bin OpenSSL. Mai mult, pentru a genera cheia, cererile de certificat, certificate, etc nu au fost amestecate în comun gramada, recomand pentru a crea pentru ei înșiși mySSL directorul de lucru, cu următoarele subdirectoare:

Handcode crea certificate OpenSSL

În acest caz, C: \ mySSL \ este un director de lucru care conține următoarele subdirectoare și fișiere:
  • cheie - un director cu privat-cheie
  • csr - catalog solicită un (cerere de semnare a certificatului) Certificat
  • director de certificate pentru uz public (certificat) - CER
  • CRL - Catalog CRL (Listă revocare certificate)
  • P12 - P12 director certificat, un privat-cheie (Personal Information File Exchange)
  • database.txt - Baza eliberat aceste certificate
  • serial.txt - fișier cu numărul de serie al certificatului curent
Structura director este creat, și cred că este convenabil pentru a rezolva această problemă. Rămâne să configurați OpenSSL. În acest scop, în directorul de lucru (C: \ mySSL \) ar trebui să fie plasate openssl.conf fișier de configurare. atunci puteți începe să creeze certificate.

3. Eliberarea propriul certificat CA pentru ea, pentru a primi privat-cheie pentru certificatul nostru CA. Acest lucru se poate face prin rularea comenzii:

#openssl genrsa -des3 -out cheie / ca.key 1024

După aceea, creați un certificat CA prin rularea comenzii:

#openssl req -config openssl.conf -new -x509 -days 365 cheie -key / ca.key -out cer / ca.cer -subj „/ C = RU / ST = Rusia / L = Moscova / O = MyCompany / OU = CA / CN = localhost "

Aici vom crea o listă de revocare certificat pentru un certificat CA:

#openssl cca -config openssl.conf -gencrl -out crl / ca.crl

Facem exporturi către PKCS12. ambalate cheia privată și certificatul CA în sine:

#openssl PKCS12 -export -in cer / ca.cer -inkey cheie / ca.key -out P12 / ca.p12

4. Certificatul nostru CA este gata, putem începe acum emiterea de certificat SSL filială pentru a face această cerere certificatul SSL:

req # Openssl.exe -config openssl.conf -new -newkey rsa 1024 cheie -keyout / test.key -nodes -out csr / test.csr -subj „/ C = RU / ST = Rusia / L = Moscova / O = MyCompany / OU = IT Departament / CN = localhost "

5. Confirmați cererea de certificat la certificatul nostru de CA (serifikat abona la certificatul nostru CA):

#openssl cca -policy policy_any -config openssl.conf -in csr / test.csr -days 360 -out cer / test.cer

Facem exporturi către certificate SSL PKCS12:

#openssl PKCS12 -export -out P12 test.p12 -in cer / test.cer -inkey / cheie / test.key

6. Pentru a adăuga certificatele noastre (PKCS12), în depozitul de certificate ar trebui să fie în Microsoft Management Console (comanda mmc) de completare snap-in pentru a adăuga un „certificat“ pentru mașina locală, atunci, certificatele noastre de import și lista de certificate revocate în directorul corespunzător (dosarul „Personal „și“ Trusted de certificare rădăcină autorităților „).

Handcode crea certificate OpenSSL

final de liliac-script poate fi descărcat pentru o desfășurare rapidă. Acest script creează structura de directoare, fișierul de configurare și începe să openssl.conf procesul de creare a certificatului.

PS: Protejați fișierele cu chei private (* .key) și fișierul PKCS12 (* .p12), dacă este posibil, a stoca fișierele de date pe suporturi speciale. Accesul la aceste fișiere ar trebui să fie foarte limitate!
fișiere certificat (* .cer) și de revocare a certificatului Lista (* .crl) conceput special pentru accesul public, inclusiv pentru a posta pe internet.
Listă revocare certificate (* .crl) ar trebui să fie actualizate cât mai des posibil.

UPD: După necesitatea certificatului CA de test va avea loc, asigurați-vă că pentru a elimina din lista de certificate de încredere.

Bună ziua, Ilya. Cum faci?
Am o problemă, iar acum toată ziua stând în fața calculatorului, căutând răspunsuri:
Echipa de aici este:
OpenSSL CA treci -passin: parola -policy policy_anything -out "certificate.crt" -infiles "request.csr"

1 din 1 cereri de certificate certificate, se angajeze? [Y / n] y
Scrie bază de date cu 1 intrări noi
Baza de date actualizată

Există o modalitate de a răspunde automat la întrebări y: Sign certificatul? [Y / n]: 1 din 1 cereri de certificate certificate, se angajeze?
Vă mulțumim pentru răspunsul dumneavoastră.

Am o serie de întrebări a apărut din nou la stabilirea de mai sus a certificatelor :)
1. ceea ce este înregistrat în fișierul de configurare este aleatoare deși și nu este disponibil în directorul?
2. Atunci când creați certificatul de filială în cer mea adăugat directoare 01.pem fișier - ceea ce este și ce să fac cu ea?
3. pentru a crea o cheie pentru copil Ocolirea a fost solicitat certificatul, acesta trebuie să fie atât?
4. obținute, deoarece nu este necesar pentru a crea un chei și o cerere Privat pentru client, pentru ca poti face totul pe server și să dea PKCS12 client și un fișier parolă)) sau nu :)

1. Nu-mi amintesc, dar poate fi găsit în rădăcină sau un dosar cu OpenSSL. Acest lucru este pur și simplu un fișier de serviciu, stochează semințele pentru Rand, și este uneori numit .rand, astfel încât a fost ascuns în unix.

3. Puteți face solicitate (cum ar fi protecția suplimentară cheie) și pot fi lăsate ca atare. Doar ține cheia pentru CA-ul riscului clar.

4. Este posibil, în cazul în care clientul are încredere transmisia și parola pentru server canal cu taste.

@Nurlan
Această întrebare este deja configurat, să fiu sincer eu nu am un răspuns clar la ea, bine, cu excepția link-uri într-un fel.