Cum instalam manual certificat SSL pentru website este foarte util atunci cand avem un website gazduit fara cPanel / VestaCP. Tutorialul este pentru NGINX si este necesar acces ‘root’ la configurarea pentru HTTPS.
Cuprins
How To
- Cum instalam manual certificat SSL (HTTPS Connection) pentru un website hostat pe un server NGINX fara cPanel sau VestaCP
- 1. Generare CSR (Certificate Signing Request)
- 2. Cumparati certificat SSL si obtineti fisierele .crt si .ca-bundle.
- 3. Upload fisiere certificate pe server via FTP / SFTP.
- 4. Configurare NGINX pentru HTTPS – Adaugare certificate SSL.
- 5. Verificare config NGINX si restart dupa ce instalam manual certificat SSL
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://.
Cum instalam manual certificat SSL (HTTPS Connection) pentru un website hostat pe un server NGINX fara cPanel sau VestaCP
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. Generare CSR (Certificate Signing Request)
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. Cumparati certificat SSL si obtineti fisierele .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. Upload fisiere certificate pe server via FTP / SFTP.
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. Configurare NGINX pentru HTTPS – Adaugare certificate SSL.
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. Verificare config NGINX si restart dupa ce instalam manual certificat SSL
Inainte ca sa restartati serviciul nginx este bine sa faceti o verificare a nginx.conf.
nginx -t
Daca totul este ok la rezultatul testului nginx, restartati serviciul.
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.