bg-tutorials

Cum se instalează un certificat SSL pe Pound

Acest ghid vă arată cum să instalați un certificat SSL/TLS pe Pound, proxy-ul invers HTTP/HTTPS ușor. Acesta acoperă partea care încurcă cel mai des operatorii: construirea fișierului PEM combinat unic pe care Pound îl așteaptă, în ordinea corectă, apoi scrierea unui bloc ListenHTTPS funcțional care dezactivează protocoalele depășite, direcționează Pound către un backend și trece de o verificare a configurației înainte de a reporni serviciul.

O scurtă precizare despre versiunea de Pound la care se referă acest ghid. Proiectul original Apsis Pound a fost întrerupt în septembrie 2022. Dezvoltarea activă s-a mutat la fork-ul întreținut de Sergey Poznyakoff la github.com/graygnuorg/pound, care este acum sursa canonică și versiunea inclusă în distribuțiile Linux actuale. Directivele de mai jos corespund seriei moderne 4.x.

Generați CSR-ul pentru Pound

Dacă ați generat deja CSR-ul și aveți în mână fișierele certificatului emis, treceți direct la Instalarea certificatului SSL pe Pound.

Înainte ca o Autoritate de Certificare să poată emite certificatul, trebuie să trimiteți un CSR (Certificate Signing Request): un mic bloc de text care conține detaliile domeniului dumneavoastră și o cheie publică, asociat cu o cheie privată care rămâne pe server. Aveți două opțiuni:

  • Generați CSR-ul automat cu generatorul nostru de CSR. Instrumentul returnează atât CSR-ul, cât și cheia privată corespunzătoare, pe care apoi le transferați pe server.
  • Generați CSR-ul direct pe server cu OpenSSL, urmând tutorialul nostru despre cum să generați un CSR pe Pound. Cheia privată rămâne pe server.

Când solicitați certificatul, lipiți întregul bloc CSR, inclusiv liniile ––BEGIN CERTIFICATE REQUEST–– și ––END CERTIFICATE REQUEST––. Dacă doriți să confirmați conținutul CSR-ului înainte de a-l trimite, lipiți-l în decodorul nostru de CSR. Păstrați fișierul cheii private corespunzătoare (de obicei yourdomain.key) într-un loc sigur, accesibil doar de root; veți avea nevoie de el în timpul instalării.

Instalați certificatul SSL pe Pound

Odată ce CA a emis certificatul, veți primi de obicei:

  • Certificatul principal (de server), de obicei un fișier .crt sau .pem denumit după domeniul dumneavoastră.
  • Unul sau mai multe certificate intermediare, fie ca fișiere separate, fie combinate într-un singur fișier .ca-bundle.
  • Cheia privată (un fișier .key) care a fost generată împreună cu CSR-ul dumneavoastră.

Pound se așteaptă la un singur fișier PEM care conține certificatul, lanțul intermediar și cheia privată necriptată. Manualul graygnuorg este explicit în privința ordinii: certificatul, apoi certificatele intermediare (dacă există), apoi cheia privată, în această ordine. Omiterea lanțului este cea mai frecventă greșeală de instalare: certificatul pare corect într-un browser desktop, dar nu funcționează pe Android, pe iOS și în clienții din linia de comandă.

Pasul 1: Construiți fișierul PEM combinat

Acest ghid presupune că fișierele certificatului sunt plasate în /etc/pound/. Ajustați căile pentru a corespunde structurii dumneavoastră. Concatenați cele trei fișiere într-un singur fișier PEM. Modelul de comandă de mai jos care folosește pipe către tee rulează redirecționarea cu privilegii de root, ceea ce este necesar deoarece /etc/pound/ este de obicei accesibil pentru scriere doar de către root (o simplă comandă sudo cat … > /etc/pound/… ar eșua, întrucât shell-ul deschide fișierul de output ca utilizator normal, înainte ca sudo să ruleze):

cat your_domain.crt intermediate.crt your_domain.key | sudo tee /etc/pound/your_domain.pem > /dev/null

Dacă CA a livrat certificatele intermediare într-un singur fișier .ca-bundle, folosiți-l în schimb:

cat your_domain.crt your_domain.ca-bundle your_domain.key | sudo tee /etc/pound/your_domain.pem > /dev/null

Înlocuiți numele fișierelor cu ale dumneavoastră. Cheia privată din fișierul combinat trebuie să fie necriptată, întrucât Pound pornește neinteractiv și nu poate solicita o parolă. Restricționați accesul la fișierul rezultat astfel încât doar root să îl poată citi:

sudo chown root:root /etc/pound/your_domain.pem
sudo chmod 600 /etc/pound/your_domain.pem

Pasul 2: Editați pound.cfg

Deschideți fișierul de configurare Pound (de obicei /etc/pound/pound.cfg pe Debian și Ubuntu, sau /etc/pound.cfg pe unele alte distribuții) și adăugați un bloc ListenHTTPS care să indice către fișierul PEM combinat. Un bloc modern minimal are următoarea formă:

ListenHTTPS
    Address 0.0.0.0
    Port 443
    Cert "/etc/pound/your_domain.pem"

    # Modern TLS only: disables SSLv2, SSLv3, TLSv1.0 and TLSv1.1,
    # leaving TLSv1.2 and TLSv1.3 enabled.
    Disable TLSv1_1
    Ciphers "ECDHE+AESGCM:ECDHE+CHACHA20:!aNULL:!MD5:!DSS"

    Service
        Backend
            Address 127.0.0.1
            Port 8080
        End
    End
End

Câteva observații despre directivele de mai sus:

  • Cert furnizează fișierul PEM combinat construit la Pasul 1. Manualul precizează clar că Cert trebuie să preceadă toate celelalte directive specifice SSL din interiorul listener-ului, deci păstrați-o în partea superioară a blocului.
  • Disable dezactivează protocolul specificat și toate protocoalele mai vechi decât acesta. Disable TLSv1_1 dezactivează astfel SSLv2, SSLv3, TLSv1.0 și TLSv1.1, lăsând active TLSv1.2 și TLSv1.3, ceea ce corespunde recomandărilor actuale din industrie.
  • Ciphers stabilește lista de cifruri OpenSSL (folosită pentru TLS 1.2; TLS 1.3 negociază propriile suite de cifruri). Lista de mai sus restricționează proxy-ul la suite ECDHE moderne cu AEAD; dacă trebuie să susțineți clienți mai vechi, înlocuiți-o cu profilul „intermediate” de la Mozilla, disponibil pe ssl-config.mozilla.org.
  • Service / Backend este locul unde Pound direcționează traficul decriptat. Exemplul redirecționează către un singur backend pe interfața loopback (port 8080); înlocuiți adresa și portul cu cele pe care ascultă aplicația dumneavoastră și adăugați mai multe blocuri Backend dacă doriți ca Pound să distribuie sarcina.

Dacă doriți ca Pound să accepte și HTTP simplu și să îl redirecționeze (de obicei doar pentru a redirecționa către HTTPS, vezi Pasul 4), adăugați un bloc separat ListenHTTP în același fișier.

Pasul 3: Verificați configurația și reporniți Pound

Înainte de a reîncărca serviciul, validați fișierul de configurare, astfel încât o greșeală de scriere să nu poată scoate proxy-ul din funcțiune. Pound dispune de un mod de verificare integrat:

sudo pound -c -f /etc/pound/pound.cfg

Se închide cu statusul 0 și nu afișează nimic în caz de succes, sau statusul 1 împreună cu un mesaj de eroare cu fișierul și linia respectivă, în caz de eșec. Adăugați -v dacă doriți o confirmare explicită de tipul „configuration OK”. Când verificarea trece, reporniți Pound pentru ca acesta să preia noul listener:

sudo systemctl restart pound

Pe sistemele fără systemd, utilizați în schimb scriptul init mai vechi:

sudo /etc/init.d/pound restart

Confirmați că serviciul funcționează și ascultă pe portul 443:

sudo systemctl status pound
sudo ss -tlnp | grep ':443'

Pasul 4 (recomandat): Redirecționați HTTP către HTTPS

Pentru a vă asigura că vizitatorii care introduc domeniul fără prefix ajung pe URL-ul securizat, adăugați un listener HTTP simplu care răspunde fiecărei cereri cu o redirecționare permanentă către versiunea HTTPS a aceleiași căi:

ListenHTTP
    Address 0.0.0.0
    Port 80
    Service
        Redirect 301 "https://example.com$1"
    End
End

Înlocuiți example.com cu domeniul dumneavoastră. Referința $1 păstrează calea originală a cererii. Rulați din nou sudo pound -c -f /etc/pound/pound.cfg, apoi reporniți serviciul.

Testați instalarea SSL

Deschideți site-ul dumneavoastră prin https:// într-un browser și verificați că lacătul este închis și că certificatul corespunde domeniului dumneavoastră. Apoi rulați o scanare mai amănunțită cu SSL Checker pentru un raport instant privind certificatul, lanțul, precum și protocoalele și cifrurile pe care Pound le oferă. Un rezultat curat înseamnă că clienții pe toate platformele majore, inclusiv cele mobile și clienții API, vor avea încredere în certificat.

Întrebări frecvente

Ce versiune de Pound ar trebui să instalez?

Proiectul original Apsis a fost abandonat în 2022. Fork-ul întreținut activ este graygnuorg/pound al lui Sergey Poznyakoff, aflat în prezent la seria 4.x, și este versiunea pe care marile distribuții Linux o includ sub numele pound. Dacă rulați ceva din vechea linie 2.x, planificați trecerea la o versiune curentă: directivele de configurare din acest ghid presupun folosirea fork-ului modern.

În ce ordine trebuie plasate certificatul, lanțul și cheia în fișierul PEM?

Conform manualului Pound: mai întâi certificatul de server, apoi certificatele intermediare (dacă există), apoi cheia privată, toate codificate PEM, în acest singur fișier. Cheia privată nu trebuie protejată cu parolă, întrucât Pound pornește ca daemon și nu are nicio metodă de a solicita una.

Cum dezactivez versiunile vechi de TLS în Pound?

Folosiți directiva Disable în interiorul blocului ListenHTTPS. Directiva Disable a lui Pound dezactivează protocolul specificat și toate protocoalele mai vechi decât acesta, astfel Disable TLSv1_1 dezactivează SSLv2, SSLv3, TLSv1.0 și TLSv1.1, lăsând active doar TLSv1.2 și TLSv1.3. Aceasta este setarea recomandată pentru implementările noi.

Pot găzdui mai multe site-uri HTTPS pe aceeași instanță Pound?

Da. Pound suportă SNI, astfel puteți declara mai multe instrucțiuni Cert în interiorul aceluiași listener ListenHTTPS (sau puteți direcționa Cert către un director cu fișiere PEM). Pound parcurge certificatele în ordine și servește pe primul al cărui Common Name sau SAN corespunde numelui de host solicitat, deci listați certificatele mai specifice (nume de host) înainte de wildcard-uri.

Cum testez configurația Pound fără a reporni serviciul?

Rulați sudo pound -c -f /etc/pound/pound.cfg. Opțiunea -c verifică fișierul de configurare pentru erori de sintaxă și se închide fără a porni proxy-ul; statusul de ieșire 0 înseamnă OK, statusul 1 înseamnă că există o eroare (mesajul indică fișierul și linia respectivă). Adăugați -v pentru un mesaj explicit de succes.

Cât de des trebuie să reînnoiesc certificatul?

Începând cu 15 martie 2026, certificatele SSL/TLS de încredere publică au o durată maximă de 200 de zile, iar CA/Browser Forum a programat reduceri suplimentare (la 100 de zile în 2027 și 47 de zile în 2029). Planificați să repetați instalarea de mai sus cu mult înainte de fiecare expirare sau automatizați reînnoirile cu ACME.

Economisește 10% la certificatele SSL în momentul plasării comenzii!

Eliberare rapidă, criptare puternică, încredere în browser de 99,99%, suport dedicat și garanție de returnare a banilor în 25 de zile. Codul cuponului: SAVE10

A detailed image of a dragon in flight

Autor cu experiență, specializat în certificate SSL. Transformă subiectele complexe despre securitatea cibernetică în conținut clar și captivant. Contribuie la îmbunătățirea securității digite prin narațiuni cu impact.