Răspuns scurt
- Instalezi HTTPS gratuit cu certbot, care cere certificatul de la Let's Encrypt prin protocolul ACME și îl configurează în serverul web.
- Lași porturile 80 și 443 deschise, pentru că validarea HTTP-01 se face pe 80, și verifici că reînnoirea automată rulează, certificatele fiind valabile 90 de zile.
- Redirecționezi tot traficul HTTP către HTTPS cu 301 și permiți doar TLS 1.2 și 1.3.
- Activezi HSTS doar după ce tot conținutul, inclusiv subdomeniile, merge pe HTTPS, cu max-age=31536000, iar preload îl adaugi ultimul, pentru că e practic ireversibil pe termen scurt.
- Valabilitatea unui certificat Let's Encrypt
- 90 de zile, reînnoire automată
- HSTS max-age recomandat
- 31536000 s (1 an)
- Cerințe pentru lista preload
- max-age ≥ 31536000, includeSubDomains, preload, redirect HTTP→HTTPS pe același host
- Versiuni TLS acceptate
- TLS 1.2 și TLS 1.3
Cum funcționează Let's Encrypt și de ce reînnoirea contează
Let's Encrypt e o autoritate de certificare care emite certificate gratuite, automat, prin protocolul ACME. certbot dovedește că controlezi domeniul răspunzând la o cerere pe portul 80 (HTTP-01) sau printr-o înregistrare DNS (DNS-01, obligatoriu pentru wildcard). Certificatele sunt valabile 90 de zile tocmai ca reînnoirea să fie automatizată. Pachetul certbot instalează un timer systemd care încearcă reînnoirea de două ori pe zi; verifici că rulează și pui o alertă externă pe data de expirare.
Ce face HSTS și când îl activezi
Antetul Strict-Transport-Security îi spune browserului să folosească doar HTTPS pentru domeniul tău, pe durata max-age, chiar dacă utilizatorul tastează http:// sau dă clic pe un link vechi. Elimină fereastra în care un atacator din aceeași rețea poate intercepta prima cerere HTTP. Riscul e invers: dacă un subdomeniu nu are certificat valid și ai pus includeSubDomains, browserul îl blochează un an. De aceea activezi HSTS în trepte: max-age mic, apoi un an, apoi includeSubDomains și, la final, preload.
- Verifici că nu ai conținut mixt, resurse încărcate prin http://
- Toate subdomeniile, inclusiv cele de mail sau panou, au certificat valid
- Dezactivezi TLS 1.0 și 1.1 și lași revocarea pe CRL, fiindcă Let's Encrypt a renunțat la OCSP
Directivele antetului Strict-Transport-Security| Directivă | Valoare recomandată | Efect | Când o adaugi |
|---|
| max-age | 31536000 (1 an) | Browserul forțează HTTPS pe această durată | După ce tot site-ul merge pe HTTPS; începi cu o valoare mică |
|---|
| includeSubDomains | prezentă | Se aplică și tuturor subdomeniilor | Doar când fiecare subdomeniu are certificat valid |
|---|
| preload | prezentă | Permite includerea în lista preîncărcată a browserelor | Ultima treaptă; practic ireversibilă pe termen scurt |
|---|
Comenzi și configurări
Certificat Let's Encrypt cu certbot pentru Nginxsudo certbot --nginx -d exemplu.ro -d www.exemplu.ro --redirect
sudo certbot renew --dry-run
systemctl list-timers | grep certbot
Nginx: TLS modern și HSTSserver {
listen 443 ssl;
http2 on;
server_name exemplu.ro www.exemplu.ro;
ssl_certificate /etc/letsencrypt/live/exemplu.ro/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/exemplu.ro/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;
# Pornește cu max-age=300, verifică o săptămână, apoi urcă la 31536000.
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
}
server {
listen 80;
server_name exemplu.ro www.exemplu.ro;
return 301 https://$host$request_uri;
}
Exemple practice
Firmă de contabilitate din București cu portal de clienți
Certificatul fusese instalat manual și nimeni nu a notat data. A expirat într-o sâmbătă, iar clienții au văzut luni avertismentul de securitate. Trecerea pe certbot cu timer și o alertă externă pe expirare au eliminat problema definitiv.
Agenție web din Timișoara
A activat HSTS cu includeSubDomains pe domeniul principal, uitând că subdomeniul de staging avea certificat autosemnat. Echipa nu a mai putut deschide staging-ul în browserele lor. Soluția a fost o treaptă de max-age mic înainte de valoarea finală.
Greșeli frecvente
- Crezi că SSL înseamnă site securizat, deși HTTPS criptează doar transportul, nu aplicația.
- Activezi HSTS cu preload din prima zi și descoperi apoi un subdomeniu fără certificat.
- Închizi portul 80 „pentru securitate” și rupi validarea HTTP-01 la următoarea reînnoire.
- Lași TLS 1.0 și 1.1 active „pentru compatibilitate” cu clienți care nu mai există.
Cum te ajută 4hosting
- Planurile cPanel includ certificate Let's Encrypt cu reînnoire automată, fără configurare din partea ta.
- Pe VPS și pe serverele dedicate, serviciul Hardening & Compliance configurează TLS modern, HSTS în trepte și monitorizarea expirării, în orele incluse: 1–8 lunar la VPS, 10 la dedicate și GPU, cerute din panoul de client, secțiunea „Servicii DevOps”.
- Serviciul Mailu & SMTP Relay pune certificate valide și pe subdomeniile de mail, condiție pentru includeSubDomains.
Întrebări conexe
Pot obține un certificat wildcard de la Let's Encrypt?
Da, dar doar prin validare DNS-01: certbot creează o înregistrare TXT în zona domeniului, prin API-ul furnizorului de DNS. Certificatul acoperă toate subdomeniile de un nivel. Îl folosești când ai multe subdomenii dinamice; altfel, certificate separate per subdomeniu sunt mai simple de urmărit.
Ce se întâmplă dacă certificatul expiră?
Browserele afișează un avertisment pe toată pagina și majoritatea utilizatorilor pleacă. Clienții API refuză conexiunea. Dacă ai HSTS activ, utilizatorul nu poate nici măcar să treacă peste avertisment. De aceea reînnoirea automată și o alertă externă pe expirare sunt obligatorii.
Merită să intru în lista preload?
Pentru site-uri cu trafic mare și structură stabilă, da: prima vizită e protejată. Pentru un site care își schimbă subdomeniile sau are servicii interne fără certificat, riscul de a bloca ceva timp de luni e real. Începi fără preload și decizi după câteva luni de HSTS stabil.