Cum să Instalați un Certificat SSL pe un Domeniu
Un certificat SSL (Secure Sockets Layer / TLS) este o acreditare criptografică emisă de o Autoritate de Certificare (CA) de încredere, care autentifică identitatea serverului dvs. și stabilește un canal criptat între server și browserul clientului. Când este instalat corect, acesta actualizează site-ul dvs. de la http:// la https://, activează lacătul browserului și previne interceptarea datelor transmise prin atacuri de tip man-in-the-middle.
Pentru SEO, Google tratează HTTPS ca un semnal de clasare confirmat din 2014. Pentru utilizatori, un certificat lipsă sau configurat greșit declanșează avertismente de securitate în browser care distrug ratele de conversie. Indiferent dacă gestionați o singură pagină de destinație sau o infrastructură multi-domeniu, configurarea corectă a SSL — și menținerea acesteia — este non-negociabilă.
Cerințe Preliminare Înainte de a Începe
Înainte de a atinge un singur fișier de configurare, confirmați că aveți următoarele pregătite:
- Un nume de domeniu înregistrat îndreptat către adresa IP a serverului dvs. cu DNS complet propagat. Puteți înregistra sau transfera un domeniu prin Înregistrare Domenii.
- Un pachet de certificate SSL de la o CA. Acesta include de obicei:
certificate.crt — certificatul dvs. principal semnat
private.key — cheia privată generată împreună cu CSR-ul dvs.
ca_bundle.crt — lanțul CA intermediar (uneori numit fișier de lanț)
Acces la server sau panou de control — fie credențiale cPanel/Plesk, fie acces SSH root/sudo la server.
Software de server web — Apache sau Nginx, rulând și configurat pentru domeniul dvs.
Portul 443 deschis — verificați că firewall-ul dvs. permite traficul TCP de intrare pe portul 443 înainte de a instala orice.
Dacă rulați un mediu de VPS Hosting, veți avea acces root complet și puteți utiliza oricare dintre cele trei metode de mai jos. Utilizatorii de hosting partajat sunt de obicei limitați la metoda cPanel.
Alegerea Tipului Corect de Certificat SSL
Nu toate certificatele sunt echivalente. Selectarea tipului greșit risipește bani sau lasă goluri în acoperire.
Tip Certificat
Nivel de Validare
Timp de Emitere
Lacăt Browser
Cel Mai Bun Pentru
—
—
—
—
—
DV (Domain Validated)
Doar control domeniu
Minute
Da
Bloguri, medii de dezvoltare, site-uri mici
OV (Organization Validated)
Domeniu + identitate org.
1–3 zile
Da
Site-uri de afaceri, platforme SaaS
EV (Extended Validation)
Verificare completă entitate juridică
3–7 zile
Da (numele org. în unele browsere)
E-commerce, banking, portaluri de înaltă încredere
Wildcard (`*.domain.com`)
DV sau OV
Minute–zile
Da
Implementări multi-subdomeniu
Multi-Domain (SAN)
DV, OV sau EV
Variabil
Da
Mai multe domenii distincte pe un singur certificat
Let’s Encrypt (DV gratuit)
Doar control domeniu
Secunde
Da
Orice domeniu accesibil public
Pentru e-commerce de producție sau orice site care gestionează date de carduri de plată, certificatele OV sau EV de la o CA comercială sunt puternic recomandate. Certificatele Let’s Encrypt DV sunt complet de încredere și excelente pentru majoritatea cazurilor de utilizare, dar nu includ verificarea identității organizaționale.
Puteți achiziționa certificate comerciale direct prin Certificate SSL dacă aveți nevoie de acoperire OV, EV sau Wildcard cu suport dedicat.
Metoda 1: Instalarea unui Certificat SSL prin cPanel
Interfața grafică cPanel este cea mai rapidă cale pentru utilizatorii de planuri gestionate sau de Hosting Web Partajat. Dacă preferați un mediu VPS gestionat prin cPanel, un VPS cu cPanel vă oferă aceeași interfață cu control complet al serverului.
Pasul 1: Conectați-vă la cPanel
Navigați la URL-ul de autentificare cPanel:
https://yourdomain.com:2083
Autentificați-vă cu credențialele dvs. de hosting.
Pasul 2: Navigați la SSL/TLS Manager
În secțiunea Security a tabloului de bord cPanel, faceți clic pe SSL/TLS. Apoi selectați Manage SSL Sites sub titlul „Install and Manage SSL for your site (HTTPS)”.
Pasul 3: Selectați Domeniul Țintă
Utilizați meniul derulant Domain pentru a selecta domeniul pe care doriți să îl securizați. Dacă domeniul nu apare, confirmați că este adăugat ca domeniu addon sau primar în cPanel.
Pasul 4: Lipiți Componentele Certificatului
Deschideți fiecare fișier de certificat într-un editor de text simplu (nu Word) și lipiți conținutul în câmpurile corespunzătoare:
Certificate (CRT): Conținutul fișierului certificate.crtprivate.key. Dacă ați generat CSR-ul în cPanel, acest câmp se completează automat din depozitul de chei cPanel.ca_bundle.crt. Omiterea acestui câmp este una dintre cele mai frecvente cauze ale erorilor „certificat neîncrezut” pe dispozitivele mobile și browserele mai vechi, deoarece browserul nu poate construi lanțul până la o rădăcină de încredere.Pasul 5: Instalați și Verificați
Faceți clic pe Install Certificate. cPanel validează perechea cheie-certificat înainte de a confirma. Dacă există o nepotrivire între cheia privată și cheia publică a certificatului, cPanel va respinge instalarea cu o eroare explicită — nu o ignorați.
După instalare, vizitați https://yourdomain.com și confirmați că apare lacătul. Testați și https://www.yourdomain.com dacă subdomeniul www este utilizat.
Capcană frecventă în cPanel: AutoSSL (integrarea Let’s Encrypt încorporată în cPanel) poate suprascrie un certificat instalat manual la următorul ciclu de reînnoire. Dacă ați instalat un certificat comercial, dezactivați AutoSSL pentru acel domeniu în cPanel > SSL/TLS Status pentru a preveni înlocuirea neintențională.
Metoda 2: Instalare Automată cu Let’s Encrypt și Certbot
Certbot este clientul ACME de referință pentru Let’s Encrypt. Acesta gestionează generarea CSR, validarea domeniului, recuperarea certificatelor, configurarea serverului web și reînnoirea — toate automat. Aceasta este abordarea corectă pentru orice server Linux pe care îl gestionați direct.
Pasul 1: Conectați-vă la Server prin SSH
ssh username@your-server-ipPasul 2: Instalați Certbot
Debian / Ubuntu (Apache):
sudo apt update && sudo apt install -y certbot python3-certbot-apacheDebian / Ubuntu (Nginx):
sudo apt update && sudo apt install -y certbot python3-certbot-nginxRHEL / AlmaLinux / Rocky Linux (Apache):
sudo dnf install -y epel-release
sudo dnf install -y certbot python3-certbot-apacheRHEL / AlmaLinux / Rocky Linux (Nginx):
sudo dnf install -y epel-release
sudo dnf install -y certbot python3-certbot-nginxPasul 3: Obțineți și Instalați Certificatul
Pentru Apache:
sudo certbot --apache -d yourdomain.com -d www.yourdomain.comPentru Nginx:
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.comCertbot efectuează implicit o provocare HTTP-01: plasează un fișier temporar în rădăcina dvs. web și solicită serverelor Let’s Encrypt să îl acceseze prin portul 80. Aceasta înseamnă că portul 80 trebuie să fie deschis și DNS-ul dvs. trebuie să rezolve corect înainte de a rula comanda.
Când vi se solicită, selectați opțiunea de a redirecționa tot traficul HTTP către HTTPS. Aceasta scrie o redirecționare permanentă 301 în configurația serverului dvs., care este comportamentul corect pentru SEO și securitate.
Pasul 4: Verificați Reînnoirea Automată
Certificatele Let’s Encrypt expiră după 90 de zile. Certbot instalează un timer systemd (sau un job cron pe sistemele mai vechi) care încearcă reînnoirea de două ori pe zi când certificatul este în termen de 30 de zile de la expirare. Testați logica de reînnoire fără a reînnoi efectiv:
sudo certbot renew --dry-runO rulare de test reușită confirmă că pipeline-ul de reînnoire este intact. Verificați starea timer-ului cu:
systemctl status certbot.timerCaz limită — provocarea DNS-01 pentru certificate wildcard: Provocarea HTTP-01 nu poate valida domeniile wildcard (*.yourdomain.com). Pentru wildcard-uri, utilizați provocarea DNS-01, care necesită crearea unei înregistrări TXT _acme-challenge în zona dvs. DNS:
sudo certbot certonly --manual --preferred-challenges dns -d "*.yourdomain.com" -d yourdomain.comUrmați instrucțiunile pentru a adăuga înregistrarea TXT, așteptați propagarea DNS, apoi apăsați Enter pentru a finaliza validarea.
Metoda 3: Instalare Manuală SSL prin SSH (Apache și Nginx)
Instalarea manuală vă oferă control precis asupra plasării certificatelor, suitelor de cifrare și configurației gazdei virtuale. Aceasta este abordarea preferată pentru serverele de producție unde trebuie să aplicați politici TLS specifice.
Pasul 1: Încărcați Fișierele de Certificat pe Server
Utilizați scp pentru a transfera fișiere de pe mașina dvs. locală:
scp certificate.crt private.key ca_bundle.crt username@your-server-ip:/tmp/Apoi mutați-le într-un director securizat, inaccesibil prin web:
sudo mkdir -p /etc/ssl/yourdomain
sudo mv /tmp/certificate.crt /etc/ssl/yourdomain/
sudo mv /tmp/private.key /etc/ssl/yourdomain/
sudo mv /tmp/ca_bundle.crt /etc/ssl/yourdomain/
sudo chmod 600 /etc/ssl/yourdomain/private.key
sudo chmod 644 /etc/ssl/yourdomain/certificate.crt /etc/ssl/yourdomain/ca_bundle.crtNotă critică de securitate: Cheia privată nu trebuie să fie niciodată lizibilă de toți utilizatorii. Permisiunea chmod 600 o restricționează doar la utilizatorul root. Pe sistemele unde Apache sau Nginx rulează ca utilizator non-root (de ex., www-data), serviciul citește totuși cheia la pornire în timp ce rulează ca root înainte de a renunța la privilegii — deci 600 deținut de root este corect.
Pasul 2a: Configurați Apache
Editați configurația gazdei virtuale pentru domeniul dvs.:
sudo nano /etc/apache2/sites-available/yourdomain.com.confAdăugați sau modificați blocul gazdei virtuale SSL:
<VirtualHost *:80>
ServerName yourdomain.com
ServerAlias www.yourdomain.com
Redirect permanent / https://yourdomain.com/
</VirtualHost>
<VirtualHost *:443>
ServerName yourdomain.com
ServerAlias www.yourdomain.com
SSLEngine on
SSLCertificateFile /etc/ssl/yourdomain/certificate.crt
SSLCertificateKeyFile /etc/ssl/yourdomain/private.key
SSLCertificateChainFile /etc/ssl/yourdomain/ca_bundle.crt
# Modern TLS hardening
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384
SSLHonorCipherOrder off
SSLSessionTickets off
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
DocumentRoot /var/www/yourdomain
</VirtualHost>Activați modulul SSL și site-ul, apoi reporniți Apache:
sudo a2enmod ssl headers
sudo a2ensite yourdomain.com.conf
sudo apache2ctl configtest
sudo systemctl restart apache2Rulați întotdeauna apache2ctl configtest înainte de repornire. O eroare de sintaxă în fișierul de configurare va opri întregul server web.
Pasul 2b: Configurați Nginx
Editați blocul de server al domeniului dvs.:
sudo nano /etc/nginx/sites-available/yourdomain.comAdăugați următoarea configurație:
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
return 301 https://yourdomain.com$request_uri;
}
server {
listen 443 ssl http2;
server_name yourdomain.com www.yourdomain.com;
ssl_certificate /etc/ssl/yourdomain/certificate.crt;
ssl_certificate_key /etc/ssl/yourdomain/private.key;
ssl_trusted_certificate /etc/ssl/yourdomain/ca_bundle.crt;
# Modern TLS hardening
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;
# OCSP Stapling
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
root /var/www/yourdomain;
index index.html index.php;
}Activați site-ul și testați:
sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginxExplicație OCSP Stapling: Fără stapling, browserul trebuie să contacteze respondentul OCSP al CA la fiecare handshake TLS pentru a verifica dacă certificatul a fost revocat. Aceasta adaugă latență și scurge date de navigare către CA. Cu ssl_stapling on, Nginx memorează în cache răspunsul OCSP și îl servește direct clientului, eliminând round-trip-ul.
Întărirea TLS: Ce Lipsește din Configurația Originală
Un certificat instalat cu setările implicite este sigur, dar nu întărit. Următorul tabel rezumă directivele suplimentare care separă un calificativ SSL Labs de trecere de un A+:
| Directivă de Întărire | Directivă Apache | Directivă Nginx | Scop |
|---|---|---|---|
| — | — | — | — |
| Dezactivare TLS 1.0 / 1.1 | `SSLProtocol all -TLSv1 -TLSv1.1` | `ssl_protocols TLSv1.2 TLSv1.3` | Eliminarea vulnerabilităților protocoalelor depreciate |
| Header HSTS | `Header always set Strict-Transport-Security` | `add_header Strict-Transport-Security` | Forțarea HTTPS la nivel de browser, prevenirea SSL stripping |
| OCSP Stapling | `SSLUseStapling on` | `ssl_stapling on` | Reducerea latenței handshake, îmbunătățirea confidențialității |
| Dezactivare sesiune tickets | `SSLSessionTickets off` | `ssl_session_tickets off` | Prevenirea degradării forward secrecy |
| Suită de cifrare puternică | `SSLCipherSuite ECDHE-…` | `ssl_ciphers ECDHE-…` | Aplicarea cifrelor AEAD, eliminarea RC4/3DES |
| HTTP/2 | `Protocols h2 http/1.1` | `listen 443 ssl http2` | Îmbunătățirea performanței peste TLS |
Verificarea și Testarea Instalării SSL
Instalarea nu este completă până când nu ați verificat rezultatul dintr-o perspectivă externă.
Verificare prin Browser
Vizitați https://yourdomain.com. Pictograma lacătului confirmă un certificat valid și de încredere. Faceți clic pe lacăt și inspectați detaliile certificatului: verificați că Common Name sau Subject Alternative Name corespunde domeniului dvs. și verificați data de expirare.
Testul SSL Labs Server
Navigați la SSL Labs și introduceți domeniul dvs. Raportul clasifică configurația dvs. TLS de la F la A+ și semnalează probleme specifice: suite de cifrare slabe, certificate de lanț lipsă, absența HSTS și suportul protocoalelor. Un rating A+ necesită HSTS cu un max-age lung și fără suport pentru TLS 1.0 sau 1.1.
Verificare prin Linie de Comandă cu OpenSSL
openssl s_client -connect yourdomain.com:443 -servername yourdomain.comAceasta afișează lanțul complet de certificate, suita de cifrare negociată și versiunea TLS. Căutați Verify return code: 0 (ok) la sfârșitul ieșirii. Orice cod de returnare diferit de zero indică o problemă de lanț sau de încredere.
Pentru a verifica direct data de expirare a certificatului:
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -datesVerificarea Conținutului Mixt
După activarea HTTPS, conținutul mixt este cea mai frecventă problemă reziduală. Apare atunci când o pagină HTTPS încarcă resurse (imagini, scripturi, foi de stil, iframe-uri) prin HTTP. Conținutul mixt blochează complet resursele active (scripturi, iframe-uri) în browserele moderne și generează avertismente în consolă pentru resursele pasive (imagini).
Remediați conținutul mixt prin:
- Actualizarea tuturor URL-urilor
http://codificate direct în CMS-ul sau HTML-ul dvs. lahttps://sau relativ la protocol//. - Adăugarea unui header Content Security Policy cu
upgrade-insecure-requestsca soluție temporară generală:
add_header Content-Security-Policy "upgrade-insecure-requests" always;- Utilizarea DevTools din browser (F12 > Console) pentru a identifica resursele specifice care cauzează probleme.
Reînnoirea Certificatelor și Gestionarea Ciclului de Viață
| Sursă Certificat | Valabilitate Implicită | Metodă de Reînnoire | Automatizare |
|---|---|---|---|
| — | — | — | — |
| Let’s Encrypt (Certbot) | 90 zile | `certbot renew` prin timer systemd | Complet automat |
| CA Comercial (cPanel) | 1–2 ani | Re-emitere și re-instalare manuală | Manual sau prin script |
| CA Comercial (SSH) | 1–2 ani | Înlocuire fișiere, reîncărcare server web | Scriptabil cu cron |
| CA Intern / auto-semnat | Personalizat | Manual | Manual |
Pentru certificatele comerciale gestionate manual, setați un memento în calendar cu 30 de zile înainte de expirare. Un certificat expirat este mai rău decât niciun certificat — browserele afișează o eroare de blocare pe pagina întreagă pe care utilizatorii nu o pot ocoli ușor.
Dacă rulați mai multe domenii sau o aplicație cu trafic ridicat pe un Server Dedicat, luați în considerare implementarea unei soluții centralizate de gestionare a certificatelor precum cert-manager (Kubernetes), Vault PKI sau un certificat wildcard pentru a reduce costurile de reînnoire pe subdomenii.
Matrice de Decizie: Ce Metodă de Instalare să Utilizați
| Scenariu | Metodă Recomandată |
|---|---|
| — | — |
| Hosting partajat, fără acces SSH | cPanel SSL/TLS Manager |
| VPS sau server dedicat, certificat gratuit necesar | Certbot (Let’s Encrypt) |
| VPS sau server dedicat, certificat comercial OV/EV | Instalare manuală SSH |
| Certificat wildcard (`*.domain.com`) | SSH manual + provocare DNS-01 prin Certbot |
| Certificat SAN multi-domeniu | Instalare manuală SSH |
| Fără experiență tehnică, hosting gestionat | cPanel AutoSSL sau SSL cu un singur clic al furnizorului de hosting |
Listă de Verificare a Punctelor Cheie Tehnice
- Confirmați că portul 443 este deschis în firewall-ul dvs. înainte de a instala orice certificat.
- Verificați întotdeauna că cheia privată corespunde certificatului înainte de instalare:
openssl x509 -noout -modulus -in certificate.crt | md5sumșiopenssl rsa -noout -modulus -in private.key | md5sumtrebuie să producă hash-uri identice. - Includeți lanțul intermediar complet (
ca_bundle.crt) — omiterea acestuia cauzează eșecuri de încredere pe browserele mobile chiar și atunci când Chrome pe desktop afișează un lacăt. - Setați
chmod 600pe fișierul cheii private; nu îl expuneți niciodată într-un director accesibil prin web. - Dezactivați TLS 1.0 și TLS 1.1 în configurația serverului dvs. web — aceste protocoale sunt depreciate și exploatabile.
- Activați HSTS cu
includeSubDomainsdoar după confirmarea că toate subdomeniile servesc și ele HTTPS. - Rulați
certbot renew --dry-rundupă configurarea inițială Certbot pentru a confirma că pipeline-ul de reînnoire funcționează. - Testați cu SSL Labs după fiecare instalare sau modificare de configurare.
- Auditați conținutul mixt imediat după trecerea la HTTPS — acesta perturbă în mod silențios funcționalitatea.
- Pentru certificatele wildcard Let’s Encrypt, utilizați provocarea DNS-01, nu HTTP-01.
Întrebări Frecvente
Care este diferența dintre un certificat SSL și un certificat TLS?
SSL (Secure Sockets Layer) este protocolul moștenit care a fost depreciat în 1999. Succesorul său, TLS (Transport Layer Security), este ceea ce utilizează de fapt toate conexiunile HTTPS moderne. Termenul „certificat SSL” persistă ca prescurtare în industrie, dar fiecare certificat emis astăzi funcționează prin TLS 1.2 sau TLS 1.3.
De ce certificatul meu SSL apare ca de încredere în Chrome, dar nu pe dispozitivele Android?
Aceasta este aproape întotdeauna o problemă de certificat de lanț intermediar lipsă. Chrome pe desktop are un mecanism agresiv de preluare a certificatelor (AIA fetching) care poate reconstrui lanțul chiar și atunci când acesta lipsește de pe server. Depozitul de sistem Android nu face acest lucru. Includeți întotdeauna fișierul de lanț ca_bundle.crt în configurația serverului dvs.
Pot instala un certificat SSL pe un domeniu care nu are încă un site web?
Da, dar numai dacă înregistrarea DNS A a domeniului rezolvă la adresa IP a serverului. CA trebuie să poată accesa serverul pentru a finaliza validarea domeniului. Dacă DNS nu s-a propagat încă, provocarea va eșua.
Cum reînnoiesc un certificat SSL comercial fără timp de nefuncționare?
Generați un nou CSR pe server, trimiteți-l la CA, primiți noul pachet de certificate, înlocuiți fișierele de certificate pe server și reîncărcați serverul web (systemctl reload apache2 sau systemctl reload nginx). O reîncărcare aplică noul certificat fără a întrerupe conexiunile existente, spre deosebire de o repornire completă.
Instalarea unui certificat SSL redirecționează automat HTTP către HTTPS?
Nu. Instalarea unui certificat activează doar HTTPS. Redirecționarea de la HTTP la HTTPS trebuie configurată separat în gazda dvs. virtuală sau blocul de server. Plugin-urile --apache și --nginx ale Certbot oferă să configureze această redirecționare automat în timpul instalării. Pentru instalările manuale, adăugați o directivă explicită Redirect permanent (Apache) sau return 301 (Nginx) în blocul de server pe portul 80.
