Situatie
Sa vedem pas cu pas cum instalam un certificat SSL pe un server cu NGINX.
Utilizatorii de cPanel sau VestaCP au la indemana din interfata de management campuri dedicate unde pot pune si instala certificatele SSL. Pentru un utilizator care ale la dispozitie doar linia de comanda din consola serverului sau SSH, treburile se complica putin. Va fi nevoit sa faca upload la certificate si configureze NGINX pentru trecerea de la HTTP la HTTPS.
Solutie
1. Va autentificati in serverul pe care este hostat website-ul caruia doriti sa-i activati HTTPS si executati urmatoarea linie de comanda. De preferat in /etc/nginx/ssl.
openssl req -new -newkey rsa:2048 -nodes -keyout numedomeniu.key -out numedomeniu.csr
De preferat este ca la numele fisierelor .key si .crt sa puneti numele de domeniu pentru care urmeaza sa le utilizati. In caz ca o sa folositi mai multe in timp, sa stiti care si de unde e.
La final, in folder-ul in care s-a executat linia de comanda o sa obtineti doua fisiere. numedomeniu.csr si numedomeniu.key,
2. Cumpararea certificatului SSL si obtinerea fisierelor .crt si .ca-bundle.
In cazul nostru am cumparat PositiveSSL Multi-Domain Certificate de la COMODO, via NAMECHEAP.COM. Dupa procesul de cumparare, urmeaza sa primiti un mail in care trebuie sa activati certificatul SSL. Sa treceti in cererea de validare numele de domeniu pentru care se utilizeaza certificatul si alte date incluse in formular. O sa ceara sa introduceti si CSR Code generat mai sus. Acesta il gasiti evident in fisierul “numedomeniu.csr”. Executati “cat numedomeniu.csr” pentru a putea copia continutul.
La final se va cere sa faceti validarea numelui de domeniu pentru care se utilizeaza certificatul. Aveti la dispozitie mai multe metode de validare. Cea mai simpla si mai rapida, este pe o adresa de e-mail facuta pe numele de domeniu.
Odata trecut peste acest pas, in cateva minute ar trebui sa primiti un mail in care va este atasata o arhiva ce contine doua fisiere. Certificatul SSL (113029727.crt de exemplu) si un fisier gen 113029727.ca-bundle.
3. Urcati fisierele de la punctul 2 pe server in acelasi loc in care le aveti si pe cele de la punctul 1 si combinati continutul fisierelor: numedomeniu.csr si 113029727.ca-bundle intr-un singur fisier. De exemplu, ssl-domeniu.crt.
La final, in fisierul nou creat, ssl-domeniu.crt trebuie sa aveti trei coduri de certificate, primul fiind cel din fisierul 113029727.crt.
4. Urmatorul pas este sa configuram NGINX pentru HTTPS.
Presupunand ca il aveti deja configurat pentru HTTP, nu aveti de facut decat sa adaugati in fisierul de configurare nginx al domeniului urmatoarele linii:
server {
listen 80;
server_name numedomeniu.tld www.numedomeniu.tld;
rewrite ^ https://$server_name$request_uri permanent;
}
server {
listen 443 ssl;
server_name numedomeniu.tld www.numedomeniu.tld;
ssl on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS;
ssl_certificate /etc/nginx/ssl/ssl-domeniu.crt;
ssl_certificate_key /etc/nginx/ssl/numedomeniu.key;
ssl_prefer_server_ciphers on;
Pe liniile “ssl_certificate” si “ssl_certificate_key” trebuie sa treceti calea exacta in server catre cele doua fisiere. Linia “rewrite” este pentru a face redirectionarea permanenta de pe http pe https, neexistand astfel riscul sa aveti un site duplicat pe HTTP si HTTPS.
5. Restartati NGINX.
systemctl restart nginx
sau
service nginx restart
In functie de CMS-ul pe care-l utilizati la website: WordPress, Drupal, Magento, Joomla, Prestashop, etc CMS, va trebui sa va configurati bazza de date si alte fisiere pentru a avea un website valid HTTPS.
In cazul in care sa zicem ca aveti intr-o pagina web o poza a carei cale incepe cu “http://”, acea pagina nu va fi valida HTTPS, iar lacatul indicator nu va fi prezent in bara de adresa a browser-ului web.
Leave A Comment?