Î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:
- Folosește generatorul nostru de CSR pentru a crea automat CSR-ul.
- Urmează tutorialul nostru pas cu pas despre cum să generezi un CSR în Postfix.
Î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
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.
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.
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.
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.
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


