make apoi make install
funcția principală SSL pe Internet este de a facilita criptarea și încrederea care permite unui browser web să valideze autenticitatea unui site web. Cu toate acestea, SSL funcționează și invers – certificatele SSL client pot fi utilizate pentru autentificarea unui client pe serverul web. Gândiți-vă SSH perechi de chei publice/private, în cazul în care este familiar pentru tine. În această postare pe blog voi schița pașii pentru crearea unui certificat de autoritate de certificare, semnarea unui certificat de server și instalarea acestuia în Apache și crearea unui cert client într-un format utilizat de browserele web.
instalarea unui sistem de operare și Apache este în afara domeniului de aplicare al postării pe blog și presupun că aveți o instalare Apache funcțională înainte de a începe. Folosesc un sistem Ubuntu 12.04.4 în această postare pe blog.
generați un certificat de autoritate de certificare (CA) cert
primul pas este generarea unui certificat ca. Acest certificat CA nu trebuie să fie generat pe serverul dvs. web – poate sta pe orice mașină pe care o veți folosi pentru a genera certificate SSL. Odată creat, cert CA va acționa ca autoritate de încredere atât pentru serverul dvs., cât și pentru cert-urile client. Este echivalentul Verisign sau Comodos în lumea reală a SSL, cu toate acestea nu ați dori să utilizați cert CA pentru un site public major, deoarece încrederea sa nu va fi încorporată în browserele de pretutindeni.
generați certificatul CA utilizând această comandă:
openssl req -newkey rsa:4096 -keyform PEM -keyout ca.key -x509 -days 3650 -outform PEM -out ca.cer
apoi păstrați-le secrete – păstrați-le în siguranță. Dacă cineva ar fi pentru a obține o dețin de aceste fișiere ar fi capabil de a genera server și client certs care ar fi de încredere de serverul nostru de web ca acesta va fi configurat mai jos.
generați cheia SSL a serverului Apache și certificatul
acum că avem cert-ul nostru CA, putem genera certificatul SSL care va fi utilizat de Apache.
- generați o cheie privată a serverului.
openssl genrsa -out server.key 4096
- utilizați cheia privată a serverului pentru a genera o solicitare de generare a certificatului.
openssl req -new -key server.key -out server.req -sha256
- utilizați cererea de generare a certificatului și cert CA pentru a genera cert server.
openssl x509 -req -in server.req -CA ca.cer -CAkey ca.key -set_serial 100 -extensions server -days 1460 -outform PEM -out server.cer -sha256
- curățați – acum că cert a fost creat, nu mai avem nevoie de cerere.
rm server.req
instalați certificatul de server în Apache
serverul meu rulează Ubuntu 12.04.4, astfel încât toate căile și comenzile la care se face referire aici sunt pentru acel sistem de operare.
- copiați cert CA într-un loc permanent. Va trebui să specificăm cert-ul nostru CA în Apache, deoarece este un ca auto generat și nu unul care este inclus în sistemele de operare de pretutindeni.
cp ca.cer /etc/ssl/certs/
- copiați serverul cert și cheia privată la locul permanent.
cp server.cer /etc/ssl/certs/server.crtcp server.key /etc/ssl/private/server.key
- activați modulul SSL în Apache.
a2enmod ssl
- activați site-ul SSL în Apache și dezactivați site-ul HTTP.
a2ensite default-ssla2dissite default
- Edit / etc / apache2 / sites-enabled / 000-default-ssl (fișierul de configurare pentru site-ul activat SSL) și adăugați:
SSLCACertificateFile /etc/ssl/certs/ca.cerSSLCertificateFile /etc/ssl/certs/server.crtSSLCertificateKeyFile /etc/ssl/private/server.key
- aplicați configurația în Apache.
service apache2 restart
https, veți primi o eroare SSL similară cu ” SSL peer nu a putut negocia un set acceptabil de parametri de securitate.”Acest lucru este bun – înseamnă că site-ul dvs. nu va accepta o conexiune decât dacă browserul dvs. utilizează un cert client de încredere. Vom genera unul acum.
generați un certificat SSL client
- generați o cheie privată pentru clientul SSL.
openssl genrsa -out client.key 4096
- utilizați cheia privată a clientului pentru a genera o cerere cert.
openssl req -new -key client.key -out client.req
- emiteți certificatul client utilizând solicitarea cert și cheia cert/ca.
openssl x509 -req -in client.req -CA ca.cer -CAkey ca.key -set_serial 101 -extensions client -days 365 -outform PEM -out client.cer
- convertiți certificatul client și cheia privată în format pkcs#12 pentru a fi utilizate de browsere.
openssl pkcs12 -export -inkey client.key -in client.cer -out client.p12
- Clean up – eliminați cheia privată client, cert client și fișierele de solicitare client ca pkcs12 are tot ce este necesar.
rm client.key client.cer client.req
se pare ca un proces destul de similar cu generarea unui certificat de server, nu-i asa?
în cele din urmă, importați .fișier p12 în browser. Pe Windows puteți face dublu clic pe fișier pentru a importa în depozitul de chei al sistemului de operare care va fi utilizat de IE și Chrome. Pentru Firefox, deschideți opțiunile -> Advanced -> certificate -> Vizualizați certificatele – > certificatele dvs. și importați certificatul.
acum, vizitați site-ul dvs. web cu browserul în care ați importat certificatul client. Probabil vi se va solicita CE certificat de client să utilizați – selectați-l. Apoi, veți fi autentificat și permis în!