Cum instalam certificat SSL (HTTPS Connection) pentru un website hostat pe un server NGINX fara cPanel sau VestaCP

Spuneam intr-un articol de luna trecuta ca tot mai multe website-uri au trecut la conexiunile securizate HTTPS si ca Firefox Quantum este primul browser care a inceput sa marcheze cu rosu site-urile HTTP ca fiind nesigure pentru utilizatori.
Lasand deoparte ideea care a inceput sa incolteasca in mintile multora, cum ca site-urile fara HTTPS ar fi nesigure si pline de virusi, iar cele cu HTTPS sunt curate ca lacrima (o idee total falsa de altfel), multi administratori de servere si de site-uri se vad nevoiti sa faca aceatsa trecere de la HTTP la protocolul HTTPS.
Trecerea de la protocolul HTTP la HTTPS implica cumpararea unui certificat SSL sau folosirea certificatului oferit gratuit de proiectul Let’s Encrypt, Dupa achizitionarea certificatului SSL, acesta trebuie instalat pe server, apoi website-ul configurat pentru trecerea de la http:// la https://.

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.

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.

Cum instalam certificat SSL (HTTPS Connection) pentru un website hostat pe un server NGINX fara cPanel sau VestaCP

About the author

Stealth

Pasionat de tot ce inseamna gadget si IT, scriu cu placere pe stealthsettings.com din 2006 si imi place sa descopar alaturi de voi lucruri noi despre calculatoare si sistemele de operare macOS, Linux, Windows, iOS si Android.

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.