bg-tutorials

Cum se instalează un certificat SSL pe Postfix

În acest tutorial, vei învăța cum să instalezi un certificat SSL/TLS pe Postfix, popularul agent de transfer de mesaje Linux.

Am înregistrat, de asemenea, un videoclip care te ghidează prin întregul proces. Urmărește-l mai jos sau continuă să citești versiunea text.

Generarea unui cod CSR pe Postfix

Dacă ai generat deja codul CSR și ai nevoie doar de pașii de instalare, sari direct la Instalarea unui certificat SSL pe Postfix.

Pentru a obține un certificat SSL de la o CA (Autoritate de Certificare) de încredere, trebuie să trimiți un CSR (Certificate Signing Request). Un CSR este un bloc de text codat care conține datele tale de contact și cele ale organizației. Ai două opțiuni:

În timpul procesului de comandă cu furnizorul tău SSL, deschide fișierul CSR într-un editor de text simplu și copiază-lipește întregul bloc, inclusiv liniile ––BEGIN CERTIFICATE REQUEST–– și ––END CERTIFICATE REQUEST––, în câmpul corespunzător. Odată ce CA validează cererea și emite certificatul, continuă cu instalarea de mai jos.

Instalarea unui certificat SSL pe Postfix

După ce CA validează cererea și trimite fișierele certificatului la adresa ta de e-mail, poți începe instalarea.

Pasul 1: Pregătește fișierele SSL

Postfix folosește certificate SSL/TLS în format X.509. O instalare corectă necesită trei fișiere:

  • Cheia ta privată, generată împreună cu CSR-ul pe serverul tău (de exemplu privkey.key).
  • Certificatul SSL principal, fișierul din arhiva ZIP trimisă de CA prin e-mail. În acest ghid îl vom numi server.crt.
  • Certificatul (certificatele) intermediar(e), adică pachetul CA din aceeași arhivă ZIP. Îl vom numi intermediate.pem.

Poți păstra toate cele trei fișiere într-un singur director, de exemplu /etc/postfix/. Asigură-te că cheia privată poate fi citită doar de root:

sudo chmod 600 /etc/postfix/privkey.key

Pasul 2: Construiește lanțul de certificate

Modul în care asamblezi fișierele depinde de versiunea ta de Postfix. Verific-o mai întâi:

postconf mail_version

Recomandat (Postfix 3.4 și versiuni mai noi)

Creează un singur fișier de lanț care conține cheia privată, certificatul serverului și certificatul(ele) intermediar(e), exact în această ordine:

cat /path/to/privkey.key /path/to/server.crt /path/to/intermediate.pem > /etc/postfix/rsachain.pem

Această metodă modernă evită problemele de rotire a certificatelor și funcționează perfect cu directiva smtpd_tls_chain_files din Postfix. Protejează fișierul de lanț la fel ca cheia, deoarece conține cheia ta privată:

sudo chmod 600 /etc/postfix/rsachain.pem

Alternativă (toate versiunile de Postfix)

Dacă folosești o versiune de Postfix mai veche decât 3.4, păstrează cheia separat și combină doar certificatul serverului cu certificatul(ele) intermediar(e):

cat /path/to/server.crt /path/to/intermediate.pem > /etc/postfix/server.pem

Vei face referire la acest pachet și la cheia privată separat în configurația de mai jos.

Pasul 3: Configurează Postfix

Deschide fișierul principal de configurare /etc/postfix/main.cf și alege stilul care se potrivește configurației tale.

Opțiunea A: Postfix 3.4 sau mai nou (recomandat). Îndreaptă Postfix către fișierul unic de lanț pe care l-ai construit:

smtpd_tls_chain_files = /etc/postfix/rsachain.pem
smtpd_tls_security_level = may

Opțiunea B: metoda veche (Postfix mai vechi de 3.4). Fă referire separat la pachetul de certificate și la cheie:

smtpd_tls_cert_file = /etc/postfix/server.pem
smtpd_tls_key_file = /etc/postfix/privkey.key
smtpd_tls_security_level = may

Câteva observații despre aceste directive:

  • smtpd_tls_security_level = may activează TLS oportunist pentru e-mailurile primite pe portul 25. Aceasta este setarea corectă pentru un server MX public: acesta anunță STARTTLS către expeditorii care îl suportă, dar acceptă în continuare conexiuni simple de la cei care nu îl suportă. Nu seta valoarea encrypt pe un MX public, deoarece ar respinge e-mailurile legitime de la expeditori care nu folosesc TLS. (Vechiul comutator smtpd_use_tls = yes este depreciat; smtpd_tls_security_level îl înlocuiește.)
  • Folosește un certificat cu lanț complet (certificatul tău plus intermediarele), fie că îl livrezi prin smtpd_tls_chain_files (Opțiunea A), fie prin smtpd_tls_cert_file (Opțiunea B). Servirea doar a certificatului frunză cauzează erori de validare a lanțului la destinatar.
  • Postfix modern dezactivează deja implicit SSLv2, SSLv3 și cifrurile slabe, deci nu ai nevoie de liste suplimentare de excludere pentru traficul de intrare pe portul 25.

Securizează serviciul de trimitere (portul 587)

Când utilizatorii tăi trimit mesaje prin Postfix (via Outlook, Thunderbird, Apple Mail etc.), aceștia se conectează pe portul de submission 587, nu pe portul 25, care este rezervat livrării server-la-server. Deoarece doar utilizatorii tăi autentificați folosesc acest port, poți impune în siguranță reguli mai stricte: solicită TLS și setează un protocol minim de TLS 1.2.

Deschide /etc/postfix/master.cf, asigură-te că serviciul submission este activat și adaugă suprascrierile de mai jos:

submission inet n       -       y       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_tls_mandatory_protocols=>=TLSv1.2

Câteva detalii care creează adesea confuzie:

  • smtpd_tls_mandatory_protocols are efect doar când nivelul de securitate este encrypt (TLS obligatoriu), ceea ce este exact cazul aici pe portul 587. Pentru TLS oportunist pe portul 25 (nivel de securitate may), opțiunea echivalentă ar fi smtpd_tls_protocols, dar pe un MX public este recomandat, în general, să lași aceasta la valorile implicite din Postfix, pentru a nu respinge expeditorii mai vechi.
  • Sintaxa compactă >=TLSv1.2 necesită Postfix 3.6 sau mai nou și nu trebuie să conțină spațiu între >= și numărul versiunii. Pe Postfix 3.4 sau 3.5, folosește în schimb forma de excludere: smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1.
  • În master.cf, nu există spațiu în jurul semnului = într-o suprascriere -o (de exemplu -o smtpd_tls_security_level=encrypt), în timp ce în main.cf scrii key = value cu spații.

Opțional: TLS implicit pe portul 465. Multe clienți moderni preferă portul 465 (SMTPS / „submissions”), care încapsulează întreaga sesiune în TLS chiar de la început. RFC 8314 susține această opțiune alături de 587. Pentru a-l oferi, activează serviciul smtps în master.cf cu modul wrapper:

smtps     inet  n       -       y       -       -       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes

Pasul 4: Repornește Postfix

Înainte de reîncărcare, este bine să verifici configurația pentru erori de sintaxă:

sudo postfix check

Dacă nu returnează nimic, aplică modificările. O reîncărcare recitește configurația fără a întrerupe conexiunile active:

sudo systemctl reload postfix

Pe sistemele fără systemd, comanda echivalentă este:

sudo postfix reload

Pasul 5: Verifică certificatul

Confirmă că Postfix servește certificatul și lanțul corect cu OpenSSL. Înlocuiește yourdomain.com cu numele de gazdă al serverului tău de e-mail:

openssl s_client -starttls smtp -connect yourdomain.com:25 -servername yourdomain.com </dev/null 
| openssl x509 -noout -issuer -subject -dates

Rezultatul ar trebui să arate subiectul certificatului serverului tău, emitentul acestuia (CA) și datele de valabilitate. Pentru a testa în schimb serviciul de submission, schimbă portul la 587 (folosește tot STARTTLS) sau, pentru portul cu TLS implicit 465, elimină -starttls smtp și conectează-te direct la portul 465. Felicitări, ai instalat cu succes un certificat SSL pe Postfix.

Testează instalarea SSL

După instalarea certificatului, este înțelept să scanezi configurația pentru erori sau vulnerabilități. SSL Checker îți oferă rapoarte instantanee despre fiecare aspect al certificatului și al configurației acestuia, astfel încât să poți confirma că lanțul este complet și protocoalele sunt configurate corect.

De unde să cumperi cel mai bun certificat SSL pentru Postfix?

Ai ajuns în locul potrivit. La SSL Dragon, oferim una dintre cele mai largi game de produse SSL la unele dintre cele mai mici prețuri de pe piață, iar toate certificatele noastre sunt compatibile cu agentul de transfer de mesaje Postfix.

Nu ești sigur ce certificat să alegi? SSL Wizard îți permite să găsești rapid și ușor produsul potrivit pentru serverul tău de e-mail.

Întrebări frecvente

Ce fișier folosește Postfix pentru certificatul SSL?

TLS este configurat în /etc/postfix/main.cf. Pe Postfix 3.4 și versiuni mai noi, directiva recomandată este smtpd_tls_chain_files, care indică un singur fișier PEM ce conține cheia privată, certificatul serverului și intermediarele. Pe versiunile mai vechi, setezi în schimb smtpd_tls_cert_file (un certificat cu lanț complet) și smtpd_tls_key_file (cheia privată) separat. Suprascrierile per serviciu pentru porturile 587 și 465 se află în /etc/postfix/master.cf.

Care este ordinea corectă pentru fișierul de lanț Postfix?

Pentru smtpd_tls_chain_files, ordinea este: mai întâi cheia privată, apoi certificatul serverului (frunză), apoi certificatul(ele) intermediar(e):
cat privkey.key server.crt intermediate.pem > /etc/postfix/rsachain.pem
Dacă ordinea este greșită, Postfix nu va putea încărca lanțul. Nu include certificatul CA rădăcină; clienții au deja încredere în acesta.

Ar trebui să folosesc „may” sau „encrypt” pentru smtpd_tls_security_level?

Folosește may (TLS oportunist) pentru e-mailurile primite pe portul 25. Un MX public trebuie să accepte e-mailuri de la expeditori care nu suportă TLS, iar encrypt i-ar respinge, cauzând pierderea e-mailurilor. Rezervă encrypt (TLS obligatoriu) pentru serviciul de submission autentificat de pe portul 587, unde se conectează doar utilizatorii tăi.

Trebuie să repornesc Postfix sau este suficient să-l reîncarc?

O reîncărcare este suficientă pentru modificările de certificat și TLS; rulează sudo systemctl reload postfix (sau sudo postfix reload). Reîncărcarea recitește configurația fără a întrerupe conexiunile active. Rulează mai întâi sudo postfix check pentru a detecta erorile de sintaxă înainte ca acestea să aibă efect.

Cum verific dacă Postfix servește certificatul?

Conectează-te cu OpenSSL și citește certificatul pe care Postfix îl prezintă prin STARTTLS:
openssl s_client -starttls smtp -connect yourdomain.com:25 -servername yourdomain.com </dev/null | openssl x509 -noout -issuer -subject -dates
Acesta afișează subiectul, emitentul și datele de valabilitate ale certificatului. Poți rula, de asemenea, o scanare completă cu instrumentele noastre SSL pentru a confirma că lanțul este complet.

Concluzie

Instalarea unui certificat SSL pe Postfix se reduce la asamblarea unui fișier PEM cu lanț complet, direcționarea main.cf către acesta cu smtpd_tls_chain_files (sau perechea veche smtpd_tls_cert_file / smtpd_tls_key_file), setarea smtpd_tls_security_level = may pentru e-mailurile primite, securizarea serviciului de submission pe portul 587, verificarea configurației cu sudo postfix check și reîncărcarea Postfix.

Ai nevoie mai întâi de un certificat? Răsfoiește certificatele noastre SSL.

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.