Cum să securizezi Nginx cu Let’s Encrypt SSL pe Ubuntu (Ghid Complet 2025)
HTTPS nu mai este opțional. În 2025, fiecare site web are nevoie de criptare SSL/TLS — nu doar pentru a proteja datele utilizatorilor, ci și pentru a se clasifica competitiv în Google Search și pentru a satisface cerințele moderne de securitate ale browserelor. Let’s Encrypt face acest lucru realizabil gratuit, oferind certificate SSL de încredere, cu reînnoire automată, care funcționează perfect cu Nginx pe Ubuntu.
Acest ghid cuprinzător vă ghidează prin fiecare pas: instalarea Certbot, obținerea unui certificat SSL Let’s Encrypt, verificarea configurației și automatizarea reînnoirilor — toate pe un server Ubuntu 18.04, 20.04 sau 22.04 care rulează Nginx.
Indiferent dacă gestionați un mediu VPS Hosting sau un server web dedicat, acest tutorial vă oferă o configurație HTTPS gata pentru producție în mai puțin de 15 minute.
De ce SSL este important pentru Nginx în 2025
Înainte de a intra în comenzi, merită să înțelegeți exact ce câștigați prin securizarea Nginx cu Let's Encrypt:
- Criptarea datelor: HTTPS criptează tot traficul dintre serverul dvs. și vizitatori, prevenind atacurile man-in-the-middle și ascultarea neautorizată.
- Semnale de clasare SEO: Google a confirmat HTTPS ca factor de clasare. Site-urile fără SSL sunt penalizate activ în rezultatele căutării.
- Indicatori de încredere în browser: Chrome, Firefox și Edge afișează avertismente "Nu este securizat" pentru site-uri HTTP, distrugând încrederea utilizatorilor și crescând ratele de ieșire.
- Gratuit și automatizat: Let's Encrypt emite certificate fără cost, iar Certbot gestionează reînoirile automat — eliminând cheltuielile manuale ale certificatelor plătite.
- PCI DSS și conformitate: Orice site care gestionează plăți sau date personale este obligat legal să utilizeze conexiuni criptate.
Dacă domeniul dvs. este deja înregistrat și indică către serverul dvs., sunteți gata să începeți. Dacă mai aveți nevoie de un domeniu, AlexHost oferă Înregistrare de domenii la prețuri accesibile cu gestionare DNS instantanee.
Cerințe preliminare
Asigurați-vă că următoarele condiții sunt îndeplinite înainte de a continua:
| Cerință | Detalii |
|---|---|
| Sistem de operare | Ubuntu 18.04, 20.04, sau 22.04 LTS |
| Server Web | Nginx instalat și servind activ site-ul dvs. |
| Nume de domeniu | Un domeniu înregistrat cu un înregistrare A care indică IP-ul public al serverului dvs. |
| Acces la server | Acces SSH cu un utilizator care are sudo privilegii |
| Firewall | Porturile 80 (HTTP) și 443 (HTTPS) deschise în UFW sau iptables |
| Acces root | Nu este strict necesar, dar accesul sudo este obligatoriu |
Verificați dacă Nginx rulează
Înainte de a instala Certbot, confirmați că Nginx este activ:
sudo systemctl status nginxAr trebui să vedeți active (running) în rezultat. Dacă Nginx nu este instalat, rulați:
sudo apt update && sudo apt install nginx -y
sudo systemctl enable nginx
sudo systemctl start nginxDeschideți porturile firewall necesare
Dacă UFW este activat, permiteți traficul HTTP și HTTPS:
sudo ufw allow 'Nginx Full'
sudo ufw reload
sudo ufw statusRezultatul ar trebui să arate Nginx Full ca ALLOW pentru IPv4 și IPv6.
Pasul 1 — Instalarea Certbot și a pluginului Nginx
Certbot este clientul oficial Let’s Encrypt. Automatizează întregul ciclu de viață al certificatelor: emitere, instalare și reînnoire. Pluginul python3-certbot-nginx permite Certbot să citească configurația Nginx și să o modifice automat.
Actualizați indexul pachetelor
Actualizați întotdeauna listele de pachete înainte de a instala software nou:
sudo apt update
sudo apt upgrade -yInstalați Certbot cu pluginul Nginx
sudo apt install certbot python3-certbot-nginx -yVerificați instalarea
certbot --versionRezultat așteptat (versiunea poate varia):
certbot 2.x.x> Notă pentru utilizatorii Ubuntu 18.04: Dacă versiunea implicită APT a Certbot este depășită, instalați prin Snap pentru cea mai recentă versiune:
> “`bash
> sudo snap install –classic certbot
> sudo ln -s /snap/bin/certbot /usr/bin/certbot
> “`
Pasul 2 — Configurarea blocului serverului Nginx
Certbot trebuie să detecteze domeniul dvs. în configurația Nginx pentru a o modifica automat. Dacă nu ați creat deja un bloc de server pentru domeniul dvs., faceți-o acum.
Creați un bloc de server
Înlocuiți yourdomain.com cu numele domeniului dvs. real în întregul ghid:
sudo nano /etc/nginx/sites-available/yourdomain.comAdăugați următoarea configurație de bază:
server {
listen 80;
listen [::]:80;
server_name yourdomain.com www.yourdomain.com;
root /var/www/yourdomain.com/html;
index index.html index.htm index.nginx-debian.html;
location / {
try_files $uri $uri/ =404;
}
}Activați blocul serverului
sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/Testați configurația Nginx
Validați întotdeauna configurația Nginx înainte de a o reîncărca:
sudo nginx -tRezultatul așteptat:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successfulReîncărcați Nginx
sudo systemctl reload nginxPasul 3 — Obținerea unui certificat SSL Let's Encrypt
Cu Nginx configurat și Certbot instalat, puteți solicita acum certificatul SSL.
Rulați Certbot cu pluginul Nginx
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.comExplicarea steagurilor:
--nginx — Spune Certbot să utilizeze pluginul Nginx pentru configurare automată
-d yourdomain.com — Specifică domeniul principal
-d www.yourdomain.com — Adaugă subdomeniul www la același certificat (Subject Alternative Name)
Explicarea prompturilor interactive
Certbot vă va ghida printr-un scurt asistent de configurare:
1. Adresa de e-mail
Enter email address (used for urgent renewal and security notices):
Furnizați o adresă de e-mail valabilă. Let's Encrypt o folosește pentru a vă notifica despre certificatele care expiră și problemele de securitate.
2. Termenii de serviciu
Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf
(A)gree/(C)ancel:
Tastați A și apăsați Enter.
3. Buletinul informativ EFF (Opțional)
Would you be willing to share your email address with the Electronic Frontier Foundation?
(Y)es/(N)o:
Aceasta este opțională. Tastați N dacă preferați să nu vă abonați.
4. Redirecționare de la HTTP la HTTPS
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
1: No redirect
2: Redirect - Make all requests redirect to secure HTTPS access
Alegeți întotdeauna opțiunea 2. Aceasta asigură că toți vizitatorii sunt actualizați automat la HTTPS, eliminând problemele de conținut mixt și îmbunătățind poziția de securitate.
Rezultat reușit
Dacă totul este configurat corect, veți vedea:
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/yourdomain.com/fullchain.pem
Key is saved at: /etc/letsencrypt/live/yourdomain.com/privkey.pem
This certificate expires on YYYY-MM-DD.
These files will be updated when the certificate renews.
Deploying certificate
Successfully deployed certificate for yourdomain.com to /etc/nginx/sites-available/yourdomain.com
Successfully deployed certificate for www.yourdomain.com to /etc/nginx/sites-available/yourdomain.com
Congratulations! You have successfully enabled HTTPS on https://yourdomain.com and https://www.yourdomain.com
Ce a modificat Certbot în Nginx
După rulare, Certbot adaugă automat directivele SSL la blocul serverului. Configurația dvs. va arăta acum similar cu aceasta:
server {
server_name yourdomain.com www.yourdomain.com;
root /var/www/yourdomain.com/html;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
server {
if ($host = www.yourdomain.com) {
return 301 https://$host$request_uri;
}
if ($host = yourdomain.com) {
return 301 https://$host$request_uri;
}
listen 80;
server_name yourdomain.com www.yourdomain.com;
return 404;
}
Pasul 4 — Verificarea instalării SSL
După ce Certbot se finalizează, verificați că certificatul SSL este corect instalat și funcțional.
Metoda 1: Verificare în Browser
Deschideți browserul web și navigați la https://yourdomain.com. Căutați:
Pictograma lacătului în bara de adrese — confirmă o conexiune SSL activă și de încredere
Fără avertismente de securitate — certificatul este valid și de încredere pentru browserul dumneavoastră
HTTPS în URL — cererile HTTP ar trebui să se redirecționeze automat la HTTPS
Faceți clic pe pictograma lacătului și selectați "Certificate" pentru a vizualiza emitenul (ar trebui să afișeze "Let's Encrypt") și data expirării.
Metoda 2: Analiză profundă SSL Labs
Pentru o audit de securitate cuprinzătoare, utilizați Qualys SSL Labs:
Navigați la https://www.ssllabs.com/ssltest/O configurație corectă Let's Encrypt + Nginx ar trebui să obțină scorul A sau A+. Dacă obțineți un scor mai mic, SSL Labs va identifica punctele slabe specifice de abordat.
Metoda 3: Verificare din linia de comandă
Verificați detaliile certificatului direct din terminal:
sudo certbot certificatesRezultat:
Found the following certs:
Certificate Name: yourdomain.com
Serial Number: abc123...
Key Type: RSA
Domains: yourdomain.com www.yourdomain.com
Expiry Date: YYYY-MM-DD HH:MM:SS+00:00 (VALID: 89 days)
Certificate Path: /etc/letsencrypt/live/yourdomain.com/fullchain.pem
Private Key Path: /etc/letsencrypt/live/yourdomain.com/privkey.pemMetoda 4: Comandă OpenSSL
Verificați lanțul de certificat și expirarea folosind OpenSSL:
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -dates -issuerRezultat așteptat:
notBefore=Mon Jan 1 00:00:00 2025 GMT
notAfter=Tue Apr 1 00:00:00 2025 GMT
issuer=C=US, O=Let's Encrypt, CN=R11Pasul 5 — Configurarea Reînnoirii Automate a Certificatelor
Certificatele Let's Encrypt expiră după 90 de zile. Această perioadă scurtă de valabilitate este intenționată — limitează expunerea dacă o cheie privată este compromisă. Certbot gestionează reînnoirile automat, dar ar trebui să verifici că automatizarea funcționează corect.
Cum funcționează Reînnoirea Certbot
Când instalezi Certbot prin APT sau Snap, acesta creează automat un timer systemd (sau cron job pe sisteme mai vechi) care rulează de două ori pe zi. Verifică dacă vreun certificat este în ultimele 30 de zile înainte de expirare și le reînnoiește automat.
Verifică Timerul Systemd
sudo systemctl status certbot.timerRezultat așteptat:
● certbot.timer - Run certbot twice daily
Loaded: loaded (/lib/systemd/system/certbot.timer; enabled; vendor preset: enabled)
Active: active (waiting) since ...
Trigger: ...
Triggers: ● certbot.serviceDacă timerul este activ și activat, reînnoirea automată este deja configurată.
Testează Procesul de Reînnoire (Dry Run)
Înainte de a te baza pe reînnoirea automată, simulează-o pentru a confirma că totul funcționează:
sudo certbot renew --dry-runRezultat cu succes:
Simulating renewal of an existing certificate for yourdomain.com and www.yourdomain.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations, all simulated renewals succeeded:
/etc/letsencrypt/live/yourdomain.com/fullchain.pem (success)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Dacă dry run-ul reușește, certificatele tale se vor reînnoi automat fără nicio intervenție manuală.
Verifică Cron Job-ul (Sisteme Vechi)
Pe versiunile mai vechi de Ubuntu care nu folosesc timere systemd, verifică cron job-ul Certbot:
sudo cat /etc/cron.d/certbotAr trebui să vezi o linie similară cu:
0 */12 * * * root test -x /usr/bin/certbot -a ! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renewAceasta rulează Certbot de două ori pe zi la intervale aleatorii pentru a evita supraîncărcarea serverelor Let's Encrypt.
Reînnoire Manuală (Dacă este Necesar)
Dacă vreodată trebuie să forțezi manual o reînnoire:
sudo certbot renew --force-renewal
sudo systemctl reload nginx> Bună practică: După orice reînnoire de certificat (manuală sau automată), reîncarcă Nginx pentru a te asigura că preia noile fișiere de certificat:
> “`bash
> sudo systemctl reload nginx
> “`
> Crocurile de reînnoire ale Certbot gestionează aceasta automat în majoritatea configurațiilor.
Configurează Crocurile de Reînnoire
Pentru a te asigura că Nginx se reîncarcă automat după fiecare reînnoire, adaugă un deploy hook:
sudo nano /etc/letsencrypt/renewal-hooks/deploy/reload-nginx.shAdaugă următorul conținut:
#!/bin/bash
systemctl reload nginxFă-l executabil:
sudo chmod +x /etc/letsencrypt/renewal-hooks/deploy/reload-nginx.shDepanare Probleme Comune
Eroare: "Could not bind to IPv4/IPv6"
Certbot foloseste portul 80 pentru validarea domeniului. Daca un alt proces foloseste portul 80, provocarea va esua.
Solutie: Opriti temporar Nginx, obtineti certificatul in modul standalone, apoi reporniti:
sudo systemctl stop nginx
sudo certbot certonly --standalone -d yourdomain.com -d www.yourdomain.com
sudo systemctl start nginxEroare: "DNS problem: NXDOMAIN looking up A for yourdomain.com"
Inregistrarile DNS ale domeniului dumneavoastra nu se propaga inca catre serverele de validare ale Let's Encrypt.
Solutie: Verificati ca inregistrarea A este setata corect:
dig yourdomain.com A +shortIesirea ar trebui sa returneze adresa IP publica a serverului dumneavoastra. Propagarea DNS poate dura pana la 48 de ore, desi de obicei se rezolva in 1-2 ore.
Eroare: "Too many certificates already issued"
Let's Encrypt impune o limita de rata de 5 certificate duplicate pe saptamana per domeniu.
Solutie: Folositi flag-ul --staging pentru a testa configuratia fara a atinge limitele de rata:
sudo certbot --nginx --staging -d yourdomain.com -d www.yourdomain.comDupa finalizarea testarii, revocati certificatul de staging si emiteti unul de productie.
Eroare: "Nginx configuration test failed"
Certbot modifica configuratia Nginx. Daca configuratia rezultata are erori de sintaxa, Nginx nu se va reincarca.
Solutie: Testati si reparati manual configuratia:
sudo nginx -t
sudo nano /etc/nginx/sites-available/yourdomain.com
# Fix any syntax errors, then:
sudo systemctl reload nginxCertificat care nu se reinnouieste Automat
Daca primiti e-mailuri de avertizare a expirarii in ciuda faptului ca aveti Certbot instalat, verificati starea cronometrului:
sudo systemctl status certbot.timer
sudo journalctl -u certbot.service --since "7 days ago"Verificati jurnalele pentru erori si adresati-le in consecinta.
Avansat: Consolidarea configurației SSL Nginx
Configurația implicită Let’s Encrypt + Certbot este sigură, dar o puteți consolida în continuare pentru un scor A+ SSL Labs.
Activați HTTP/2
Editați blocul serverului pentru a activa HTTP/2 pentru performanță îmbunătățită:
listen 443 ssl http2;
listen [::]:443 ssl http2;Adăugați HSTS (HTTP Strict Transport Security)
HSTS instruiește browserele să utilizeze întotdeauna HTTPS pentru domeniul dvs., chiar dacă un utilizator tastează http://:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;Dezactivați protocoalele și cifrurile slabe
Adăugați aceste directive la nginx.conf sau blocul serverului:
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
ssl_session_tickets off;După efectuarea modificărilor, testați și reîncărcați întotdeauna:
sudo nginx -t && sudo systemctl reload nginxAlegerea Hosting-ului Potrivit pentru Configurația Nginx + SSL
Performanța și fiabilitatea serverului Nginx securizat cu SSL depind în mare măsură de infrastructura de bază. Iată cum se aliniază opțiunile de hosting AlexHost cu diferite cazuri de utilizare:
- VPS Hosting — Ideal pentru majoritatea site-urilor și aplicațiilor. Accesul complet root vă permite să configurați Nginx și Certbot exact așa cum este descris în acest ghid. Planurile VPS AlexHost rulează pe Ubuntu 18.04, 20.04 și 22.04 LTS.
- Servere Dedicate — Cel mai bun pentru site-uri cu trafic ridicat care necesită performanță maximă, resurse dedicate și control complet al hardware-ului. Rulați mai multe gazde virtuale Nginx, fiecare cu propriul certificat Let’s Encrypt.
- VPS cu cPanel — Dacă preferați o interfață grafică pentru gestionarea certificatelor SSL alături de hosting-ul web, cPanel se integrează cu Let’s Encrypt și gestionează emiterea certificatelor prin funcția AutoSSL.
- Certificate SSL — Pentru mediile enterprise, site-uri de comerț electronic sau aplicații care necesită certificate cu validare extinsă (EV) sau validare organizațională (OV), AlexHost oferă certificate SSL premium cu acoperire de garanție și suport dedicat.
Concluzie
Securizarea Nginx cu un certificat SSL Let’s Encrypt pe Ubuntu este unul dintre cei mai importanți pași pe care îi puteți lua pentru a proteja utilizatorii dvs., a îmbunătăți clasamentul motorului de căutare și a construi încredere cu publicul dvs. Întregul proces — de la instalarea Certbot la activarea reînnoirilor automate — durează mai puțin de 15 minute și nu costă nimic.
Pentru a recapitula ceea ce ați realizat în acest ghid:
- ✅ Ați instalat Certbot și pluginul Nginx
- ✅ Ați configurat un bloc de server Nginx adecvat pentru domeniul dvs.
- ✅ Ați obținut un certificat SSL Let’s Encrypt de încredere
- ✅ Ați verificat certificatul folosind instrumente de browser, SSL Labs și OpenSSL
- ✅ Ați confirmat reînnoirea automată prin timer systemd și testare dry-run
- ✅ Ați aplicat consolidare avansată pentru o evaluare de securitate A+
Cu serverul Nginx acum securizat, luați în considerare explorarea unor straturi suplimentare de protecție: un Web Application Firewall (WAF), fail2ban pentru protecție împotriva forței brute și audituri de securitate regulate. Dacă gestionați mai multe domenii sau aplicații, VPS Control Panels AlexHost oferă o interfață simplificată pentru gestionarea certificatelor SSL, gazdelor virtuale și configurațiilor serverului fără a sacrifica flexibilitatea unui mediu Linux.
Utilizatorii dvs. merită o conexiune securizată. Acum au una.
la toate serviciile de găzduire