Certificato SSL per un mail server Linux

Lucchetto / PadlockAvendo trasferito i miei domini presso NameCheap a causa dell’affaire GoDaddy e SOPA ho acquistato per l’astronomica cifra di due dollari un certificato SSL.

Qui di seguito la procedura che ho utilizzato per usare il certificato con Apache (rpm), Dovecot (compilato) e Postfix (compilato) su una CentOS 5.x.

Questa procedura non sostituisce il manuale, ma serve solamente come guida di massima. Familiarizzare con le opzioni relative a SSL dei vari programmi prima di procedere. In alcune situazioni potrebbe essere necessario utilizzare ulteriori parametri oltre a quelli indicati.

Innanzi tutto verificare che il firewall lasci passare 443/tcp, 993/tcp e 995/tcp; SMTPS può essere utilizzato nella medesima porta di SMTP.

Immaginiamo di voler assegnare un certificato SSL a mail.acme.com, come prima cosa bisogna creare una richiesta di certificato.

openssl genrsa -out /etc/ssl/mail.acme.com.key 2048
openssl req -new -key /etc/ssl/mail.acme.com.key -out /etc/ssl/mail.acme.com.csr

In questo caso la chiave privata non è protetta da password. Se la si vuole proteggere aggiungere il parametro -des3 al primo comando, ma attenzione che quando verrà utilizzata bisognerà fornire la password per sbloccarla, o scriverla nel file di configurazione del programma (se è supportata l’opzione).

Quando viene creato il csr verificare che venga inserito un indirizzo email corretto e affidabile (non cose come Libero, per capirci) perché il certificato verrà spedito lì.

Il file mail.acme.com.csr è un file di testo, il cui contenuto va incollato nell’apposito campo della procedura di creazione del certificato di NameCheap. Nella stessa schermata il registar chiede quale programma ha generato il csr, io ho messo Other.

La procedura richiede anche un indirizzo email. Verificare che sia raggiungibile e attivo perché è a quell’indirizzo che verrà inviata la richiesta di conferma per l’attivazione del certificato. Questo indirizzo può essere diverso da quello specificato nel csr (nel mio caso erano diversi).

In poco tempo verrà inviata la mail di verifica, una volta aperta è sufficiente seguire il link per proseguire la procedura di creazione del certificato.

Dopo qualche decina di minuti si ricevono all’indirizzo indicato nel csr il certificato del proprio server, delle CA intermedie e root che lo garantiscono. Trasferire i file nello ZIP allegato alla mail nella directory /etc/ssl del server.

Postfix
Editare il file /etc/postfix/main.cf e aggiungere queste righe

smtpd_use_tls = yes
smtpd_tls_key_file = /etc/ssl/mail.acme.com.key
smtpd_tls_cert_file = /etc/ssl/mail.acme.com.crt

Verificare che in /etc/postfix/master.cf sia attivo smtps e riavviare Postfix.

Dovecot
Editare il file /etc/dovecot/conf.d/10-ssl.conf e aggiungere o scommentare queste righe

ssl = yes
ssl_cert = < /etc/ssl/mail.acme.com.crt
ssl_key = < /etc/ssl/mail.acme.com.key

Verificare che in /etc/dovecot/conf.d/10-master.conf siano attivi i protocolli imaps e/o pop3s e riavviare Dovecot.

Apache
Editare il file /etc/httpd/conf.d/ssl.conf e aggiungere o modificare queste righe all’interno di <VirtualHost _default_:443>

ServerName mail.acme.com:443
SSLCertificateFile /etc/ssl/mail_acme_com.crt
SSLCertificateKeyFile /etc/ssl/mail.acme.com.key
SSLCertificateChainFile /etc/ssl/UTNAddTrustServerCA.crt
SSLCertificateChainFile /etc/ssl/PositiveSSLCA.crt
SSLCACertificateFile /etc/ssl/AddTrustExternalCARoot.crt

Riavviare Apache.

Ecco fatto, ora il vostro server Linux ha un certificato non auto-emesso che non provoca più errore quando viene utilizzato.

Autore: Luigi Rosa

Consulente IT, sviluppatore, SysAdmin, cazzaro, e, ovviamente, geek.

7 pensieri riguardo “Certificato SSL per un mail server Linux”

Spazio per un commento