15%

Economisește 15% la toate serviciile de găzduire

Testează-ți abilitățile și obține Reducere la orice plan de găzduire

Utilizați codul:

Skills
Începeți
30.10.2024

Cum să Configurați un Certificate SSL în Nginx: Un Ghid Complet Pas cu Pas

Securizarea site-ului dvs. cu un certificat SSL/TLS nu mai este opțională — este o cerință fundamentală pentru încrederea utilizatorilor, protecția datelor și clasamentele în motoarele de căutare. Google a folosit explicit HTTPS ca semnal de clasament încă din 2014, iar browserele moderne avertizează activ vizitatorii atunci când un site nu are criptare. Dacă utilizați Nginx ca server web, acest ghid vă va prezenta tot ce trebuie să știți pentru a instala, configura și automatiza gestionarea certificatelor SSL folosind Certbot și Let’s Encrypt.

Indiferent dacă gestionați un mediu de VPS Hosting, un server dedicat sau un plan de hosting partajat, SSL-ul configurat corect este indispensabil pentru orice site web de producție.

Ce Este un Certificat SSL și De Ce Are Nevoie Nginx de Unul?

Un certificat SSL (Secure Sockets Layer) — denumit mai precis astăzi certificat TLS (Transport Layer Security) — stabilește o conexiune criptată între serverul dvs. web și browserul unui vizitator. Această criptare asigură că datele sensibile, cum ar fi datele de autentificare, informațiile de plată și detaliile personale, nu pot fi interceptate de terțe părți rău intenționate.

Pentru Nginx în mod specific, configurarea SSL implică:

  • Fișiere de certificat: Lanțul de certificate publice emis de o Autoritate de Certificare (CA)
  • Cheia privată: O cheie generată criptografic stocată în siguranță pe serverul dvs.
  • Directive de bloc server: Instrucțiuni de configurare Nginx care leagă certificatul de domeniul dvs.

Fără SSL, site-ul dvs. este servit prin HTTP, ceea ce înseamnă că tot traficul este transmis în text simplu. Cu SSL configurat corect, site-ul dvs. folosește HTTPS — criptat, autentificat și de încredere atât pentru browsere, cât și pentru motoarele de căutare.

> Sfat pro: Dacă evaluați opțiuni de hosting, AlexHost oferă Certificate SSL pentru domenii de toate tipurile, inclusiv certificate Domain Validation (DV), Organization Validation (OV) și Extended Validation (EV).

Cerințe Preliminare Înainte de a Începe

Înainte de a vă aprofunda în pașii de configurare, asigurați-vă că sunt îndeplinite următoarele condiții:

  • Un server web Nginx funcțional pe un sistem bazat pe Linux (Ubuntu 20.04/22.04 sau Debian recomandat)
  • Acces root sau sudo la serverul dvs.
  • Un nume de domeniu înregistrat care indică spre adresa IP a serverului dvs. prin înregistrări DNS A — puteți înregistra unul prin Înregistrare Domenii
  • Porturi firewall deschise: Porturile TCP 80 (HTTP) și 443 (HTTPS) trebuie să fie accesibile
  • Un utilizator non-root cu privilegii sudo (cea mai bună practică pentru securitatea serverului)

Puteți verifica că Nginx rulează cu:

sudo systemctl status nginx

Și confirmați că domeniul dvs. se rezolvă corect folosind:

dig yourdomain.com +short

Pasul 1: Instalați Certbot pe Serverul Dvs.

Certbot este clientul oficial open-source pentru Let’s Encrypt — o Autoritate de Certificare gratuită, automatizată și larg de încredere. Acesta gestionează întregul proces de emitere a certificatelor, inclusiv validarea domeniului și actualizările configurației Nginx.

Actualizați Indexul de Pachete

Începeți întotdeauna prin reîmprospătarea listelor de pachete pentru a vă asigura că instalați cele mai recente versiuni disponibile:

sudo apt update && sudo apt upgrade -y

Instalați Certbot și Plugin-ul Nginx

Plugin-ul python3-certbot-nginx permite Certbot să citească și să modifice direct fișierele de configurare Nginx, automatizând mare parte din procesul de configurare:

sudo apt install certbot python3-certbot-nginx -y

Verificați Instalarea

Confirmați că Certbot a fost instalat cu succes verificând versiunea sa:

certbot --version

Ar trebui să vedeți o ieșire similară cu certbot 2.x.x.

Pasul 2: Permiteți Traficul HTTPS Prin Firewall-ul Dvs.

Dacă utilizați UFW (Uncomplicated Firewall), trebuie să permiteți explicit traficul HTTPS înainte de a continua:

sudo ufw allow 'Nginx Full'
sudo ufw delete allow 'Nginx HTTP'
sudo ufw status

Profilul Nginx Full permite atât HTTP (portul 80), cât și HTTPS (portul 443). Eliminarea regulii HTTP standalone asigură că, odată ce SSL este configurat, nu lăsați porturi inutile deschise fără scop.

Pasul 3: Obțineți Certificatul SSL de la Let’s Encrypt

Cu Certbot instalat și firewall-ul configurat, puteți solicita acum un certificat. Indicatorul --nginx îi spune Certbot să folosească plugin-ul Nginx, care gestionează automat verificarea provocării ACME și actualizează configurația serverului dvs.

sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com

Ce Se Întâmplă în Timpul Acestui Proces?

  1. Verificarea proprietății domeniului: Certbot modifică temporar configurația Nginx pentru a servi un fișier de provocare, dovedind către Let’s Encrypt că dețineți controlul asupra domeniului
  2. Emiterea certificatului: Let’s Encrypt emite un certificat semnat valabil timp de 90 de zile
  3. Configurarea automată Nginx: Certbot actualizează blocul de server Nginx pentru a utiliza noile fișiere de certificat

Solicitări Interactive

În timpul procesului, Certbot va solicita:

  • O adresă de email pentru notificări urgente de reînnoire și securitate
  • Acordul cu Termenii Serviciului
  • Dacă să redirecționați HTTP către HTTPS — alegeți întotdeauna opțiunea 2 (Redirect) pentru a impune HTTPS pe întreg site-ul

Certificatele dvs. vor fi stocate în:

/etc/letsencrypt/live/yourdomain.com/

Fișierele cheie sunt:

FișierScop
fullchain.pemCertificatul dvs. + lanțul intermediar
privkey.pemCheia dvs. privată (păstrați-o secretă)
cert.pemDoar certificatul domeniului dvs.
chain.pemDoar certificatele intermediare

Pasul 4: Configurați Manual Nginx pentru SSL (Avansat)

Deși Certbot automatizează cea mai mare parte a configurației, înțelegerea configurării manuale vă oferă control complet asupra implementării SSL — esențial pentru optimizarea performanței, întărirea securității și implementările personalizate.

Deschideți Configurația Blocului de Server Nginx

sudo nano /etc/nginx/sites-available/yourdomain.com

Dacă utilizați fișierul de configurare implicit:

sudo nano /etc/nginx/sites-available/default

Configurația Completă a Blocului de Server SSL

Înlocuiți sau actualizați configurația dvs. cu următorul exemplu întărit:

# Redirect all HTTP traffic to HTTPS
server {
    listen 80;
    listen [::]:80;
    server_name yourdomain.com www.yourdomain.com;
    return 301 https://$host$request_uri;
}

# HTTPS server block
server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name yourdomain.com www.yourdomain.com;

    # SSL Certificate Paths
    ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;

    # Recommended SSL parameters
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 1d;
    ssl_session_tickets off;

    # OCSP Stapling
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_trusted_certificate /etc/letsencrypt/live/yourdomain.com/chain.pem;
    resolver 8.8.8.8 8.8.4.4 valid=300s;
    resolver_timeout 5s;

    # Security Headers
    add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
    add_header X-Frame-Options DENY;
    add_header X-Content-Type-Options nosniff;
    add_header X-XSS-Protection "1; mode=block";
    add_header Referrer-Policy "no-referrer-when-downgrade";

    # Document root and index
    root /var/www/yourdomain.com/html;
    index index.html index.htm index.nginx-debian.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

Directive Cheie de Configurare Explicate

  • ssl_protocols TLSv1.2 TLSv1.3: Dezactivează protocoalele mai vechi și vulnerabile (SSLv3, TLS 1.0, TLS 1.1)
  • ssl_ciphers: Specifică un set puternic de cifruri care prioritizează forward secrecy
  • ssl_stapling on: Activează OCSP stapling, reducând latența handshake-ului SSL
  • Strict-Transport-Security: Instruiește browserele să folosească întotdeauna HTTPS pentru domeniul dvs. (HSTS)
  • http2: Activează HTTP/2 pentru performanță îmbunătățită pe conexiunile HTTPS

Pasul 5: Testați Configurația Nginx

Înainte de a reporni Nginx, validați întotdeauna sintaxa configurației pentru a detecta erorile care ar putea scoate site-ul dvs. offline:

sudo nginx -t

Un test reușit returnează:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Dacă întâmpinați erori, examinați cu atenție ieșirea — Nginx va indica fișierul și numărul liniei unde există problema.

Pasul 6: Reporniți Nginx pentru a Aplica Modificările

Odată ce testul de configurare trece, reîncărcați sau reporniți Nginx:

# Graceful reload (preferred for production — no downtime)
sudo systemctl reload nginx

# Full restart (use if reload doesn't apply all changes)
sudo systemctl restart nginx

Verificați că Nginx rulează corect după repornire:

sudo systemctl status nginx

Pasul 7: Configurați Reînnoirea Automată a Certificatelor SSL

Certificatele Let’s Encrypt expiră după 90 de zile. Această perioadă scurtă de valabilitate este intenționată — limitează daunele cauzate de certificatele compromise și încurajează automatizarea. Certbot instalează automat un timer systemd (sau un job cron) pentru a gestiona reînnoirile, dar ar trebui să îl verificați și testați.

Verificați Timer-ul de Reînnoire Existent

sudo systemctl status certbot.timer

Ar trebui să vedeți că timer-ul este activ și programat să ruleze de două ori pe zi.

Testați Procesul de Reînnoire

Simulați o reînnoire fără a modifica efectiv niciun certificat:

sudo certbot renew --dry-run

Ieșirea reușită va include:

Congratulations, all simulated renewals succeeded:
  /etc/letsencrypt/live/yourdomain.com/fullchain.pem (success)

Adăugați un Hook Post-Reînnoire pentru a Reîncărca Nginx

Certbot nu va reîncărca automat Nginx după reînnoirea certificatelor dacă nu configurați un deploy hook. Creați unul cu:

sudo nano /etc/letsencrypt/renewal-hooks/deploy/reload-nginx.sh

Adăugați următorul conținut:

#!/bin/bash
systemctl reload nginx

Faceți-l executabil:

sudo chmod +x /etc/letsencrypt/renewal-hooks/deploy/reload-nginx.sh

Aceasta asigură că Nginx încarcă imediat fișierele de certificat proaspete după fiecare reînnoire reușită.

Pasul 8: Verificați Instalarea SSL

După finalizarea configurării, verificați configurația SSL folosind aceste metode:

Verificare prin Browser

Navigați la https://yourdomain.com în browserul dvs. Ar trebui să vedeți o pictogramă de lacăt în bara de adrese care indică o conexiune securizată.

Instrumente Online de Testare SSL

Utilizați aceste instrumente gratuite pentru a audita calitatea configurației SSL:

  • SSL Labs (Qualys): https://www.ssllabs.com/ssltest/ — Oferă o notă literală (vizați A sau A+)
  • Security Headers: https://securityheaders.com/ — Auditează antetele de securitate HTTP
  • HSTS Preload: https://hstspreload.org/ — Verifică eligibilitatea pentru preîncărcarea HSTS

Verificare prin Linie de Comandă

# Check certificate details
openssl s_client -connect yourdomain.com:443 -servername yourdomain.com

# Check certificate expiry date
echo | openssl s_client -connect yourdomain.com:443 2>/dev/null | openssl x509 -noout -dates

Depanarea Problemelor Comune SSL în Nginx

ProblemăCauză ProbabilăSoluție
ERR_SSL_PROTOCOL_ERRORNginx nu ascultă pe portul 443Verificați directiva listen 443 ssl; și regulile firewall
NET::ERR_CERT_AUTHORITY_INVALIDUtilizarea cert.pem în loc de fullchain.pemActualizați ssl_certificate pentru a utiliza fullchain.pem
Certificatul nu se reînnoieșteTimer-ul Certbot dezactivat sau portul 80 blocatRulați sudo certbot renew --dry-run și verificați jurnalele
Avertismente de conținut mixtResurse HTTP încărcate pe pagina HTTPSActualizați toate linkurile interne și URL-urile resurselor la HTTPS
SSL_ERROR_RX_RECORD_TOO_LONGTraficul HTTP ajunge pe portul HTTPSAsigurați-vă că redirecționarea de la portul 80 la 443 este configurată

Alegerea Mediului de Hosting Potrivit pentru SSL

Performanța și fiabilitatea implementării SSL depind în mare măsură de mediul de hosting. Iată o prezentare rapidă:

  • VPS Hosting: Accesul root complet vă oferă control total asupra configurației Nginx, parametrilor SSL și gestionării certificatelor — ideal pentru acest ghid
  • Servere Dedicate: Performanță maximă și izolare pentru site-urile cu trafic ridicat care necesită configurații SSL de nivel enterprise
  • Hosting Web Partajat: SSL este de obicei gestionat printr-un panou de control; configurarea manuală Certbot poate să nu fie disponibilă
  • VPS cu cPanel: Simplifică gestionarea SSL printr-o interfață grafică, păstrând în același timp controlul la nivel VPS

Pentru dezvoltatori și administratori de sistem care au nevoie de control complet asupra stivei SSL, un VPS sau un server dedicat este alegerea recomandată.

Concluzie

Configurarea SSL în Nginx este un proces cu mai mulți pași, dar fiecare pas servește unui scop critic — de la criptarea traficului și verificarea proprietății domeniului până la întărirea configurației cifrurilor și automatizarea reînnoirilor. Urmând acest ghid, ați implementat:

✅ Un certificat SSL gratuit și de încredere prin Let’s Encrypt și Certbot

✅ O configurație SSL Nginx întărită cu protocoale TLS moderne

✅ Redirecționarea HTTP către HTTPS pentru tot traficul

✅ OCSP stapling pentru performanță îmbunătățită a handshake-ului

✅ HSTS și antete de securitate pentru apărare în profunzime

✅ Reînnoire automată a certificatelor cu hook-uri de reîncărcare Nginx

Un certificat SSL configurat corect nu doar că vă protejează utilizatorii — construiește încredere, îmbunătățește clasamentele SEO și este o cerință de bază pentru orice prezență web profesională. Dacă căutați infrastructură fiabilă pentru a găzdui serverul Nginx securizat cu SSL, explorați planurile de VPS Hosting ale AlexHost, concepute special pentru dezvoltatori și companii care iau securitatea în serios.

15%

Economisește 15% la toate serviciile de găzduire

Testează-ți abilitățile și obține Reducere la orice plan de găzduire

Utilizați codul:

Skills
Începeți