LaoBlog

Requisiti certificati ssl per Postfix


Il server SMTP Postfix può utilizzare TLS, il metodo di trasmissione che cripta la password tramite ssl, ma per questo ha bisogno di un certificato e di una chiave privata. Ambedue devono soddisfare dei requisiti specifici, perciò se solitamente utilizzate programmi come tinyca per generare certificati e chiavi, attenzione!. Sia la chiave che il certificato DEVONO essere in formato PEM, e la chiave privata NON deve essere criptata, ovvero deve essere accessibile senza l'utilizzo della password (che solitamente bisogna fornire all'atto della creazione della stessa, come appunto avviene in tinyca). Certificato e chiave possono risiedere nello stesso file, ed in tal caso questo deve essere di proprietà dell'utente root e leggibile solo da esso. Se invece chiave e certificato sono separati in due files distinti, solo la chiave deve essere leggibile soltanto da root, mentre il certificato può essere leggibile da chiunque. Come algoritmo di criptazione si utilizza di solito RSA, ma anche DSA ed altri sono utilizzabili con Postfix.Per genereare la richiesta, firmarla con una propria CA, generare la chiave, togliere la password, e generare il certificato, digitare come utente root i seguenti comandi in un terminale:openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024chmod 600 smtpd.keyopenssl req -new -key smtpd.key -out smtpd.csropenssl x509 -req -days 365 -in smtpd.csr -signkey smtpd.key -out smtpd.crtopenssl rsa -in smtpd.key -out smtpd.key.unencryptedmv -f smtpd.key.unencrypted smtpd.keyopenssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650Chiavi, certificati, ecc. appena generati (validità 3650 giorni) vanno poi spostati in una directory a scelta (per esempio /etc/postfix/certificati/ ) e poi bisogna indicare il loro percorso all'interno del file /etc/postfix/main.cf, inserendo, nel nostro caso, le seguenti righe:smtpd_tls_key_file = /etc/postfix/certificati/smtpd.keysmtpd_tls_cert_file = /etc/postfix/certificati/smtpd.crtsmtpd_tls_CAfile = /etc/postfix/certificati/cacert.pem