bg-tutorials

Come installare un certificato SSL su Courier IMAP Server

In questo tutorial imparerai come installare un certificato SSL su un server Courier IMAP. Combinerai il tuo certificato, la chiave privata e la catena CA in un unico file PEM, punterai l’impostazione TLS_CERTFILE di Courier verso di esso e riavvierai il servizio in modo che IMAPS e POP3S servano il nuovo certificato.

Genera un codice CSR su Courier IMAP Server

Se hai già generato il tuo CSR e ricevuto i file SSL, salta la parte 1 e vai direttamente ai passaggi di installazione.

Il CSR (Certificate Signing Request) è un blocco di testo codificato che contiene i tuoi dati di contatto. Lo crei e lo invii alla tua Certificate Authority (CA) per superare la validazione SSL. Generare il CSR crea anche la corrispondente chiave privata, che rimane sul tuo server ed è necessaria per l’installazione. Hai due opzioni:

Per aprire il file CSR, usa un qualsiasi editor di testo semplice. Al momento dell’ordine, copia l’intero blocco, comprese le righe BEGIN ed END. Conserva il file della chiave privata al sicuro: lo unirai al tuo file PEM durante l’installazione.

Installa un certificato SSL su Courier IMAP Server

Dopo la validazione, la tua CA ti invia via email un archivio ZIP con i tuoi file SSL: il certificato primario (server) e uno o più certificati intermedi (CA). Estrai l’archivio sul tuo server, quindi segui i passaggi seguenti.

Passo 1: Combina certificato, catena e chiave in un unico file PEM

Courier legge il certificato e la chiave privata da un unico file PEM impostato in TLS_CERTFILE. Concatena i file in quest’ordine: prima il tuo certificato server, poi la catena intermedia CA, quindi la tua chiave privata. Dalla directory contenente i file estratti, esegui:

cat yourdomain.crt yourdomain.ca-bundle yourdomain.key > imapd.pem
sudo mv imapd.pem /etc/courier/imapd.pem
sudo chmod 600 /etc/courier/imapd.pem

Se la tua CA ha fornito gli intermedi come file separati anziché un unico .ca-bundle, elenca ciascuno tra il certificato e la chiave. Il file PEM finito dovrebbe apparire così:

-----BEGIN CERTIFICATE-----
(the text of your primary SSL certificate)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(the text of the intermediate / CA chain certificate)
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
(the text of your private key)
-----END PRIVATE KEY-----

Le chiavi più vecchie potrebbero essere etichettate BEGIN RSA PRIVATE KEY invece di BEGIN PRIVATE KEY; entrambe vanno bene. La chiave non deve essere cifrata con una passphrase, poiché Courier la carica senza richiesta. Il file PEM deve essere leggibile solo da root (il chmod 600 sopra), poiché contiene la chiave privata.

Se preferisci mantenere la chiave privata in un proprio file, lascia la chiave fuori dal PEM e imposta TLS_PRIVATE_KEYFILE sul percorso della chiave nella configurazione (Passo 2). Quando la chiave è già incorporata in TLS_CERTFILE, il file di chiave separato è opzionale.

Passo 2: Punta Courier al tuo file PEM

Apri il file di configurazione che Courier usa per IMAP su SSL. Il percorso dipende dalla tua distribuzione: solitamente è /etc/courier/imapd-ssl, oppure /usr/lib/courier-imap/etc/imapd-ssl su alcuni sistemi. Modificalo con un editor di testo, ad esempio:

sudo nano /etc/courier/imapd-ssl

Individua la riga TLS_CERTFILE (o aggiungila se mancante) e impostala sul tuo file PEM:

TLS_CERTFILE=/etc/courier/imapd.pem

Se hai mantenuto la chiave privata separata nel Passo 1, imposta anche il suo percorso:

TLS_PRIVATE_KEYFILE=/etc/courier/imapd.key

Mentre sei in questo file, rafforza le impostazioni TLS. Rimuovi o commenta qualsiasi riga che forzi un protocollo obsoleto, come TLS_PROTOCOL=SSL3: SSLv3 e le prime versioni TLS 1.0 e 1.1 sono insicure e dovrebbero essere disabilitate. Imposta Courier per richiedere TLS 1.2 o superiore. TLS_PROTOCOL si applica alla porta SSL dedicata (IMAPS), mentre TLS_STARTTLS_PROTOCOL si applica a STARTTLS sulla porta standard:

TLS_PROTOCOL=TLSv1.2
TLS_STARTTLS_PROTOCOL=TLSv1.2

Il valore TLSv1.2 significa “TLS 1.2 o superiore,” quindi TLS 1.3 viene comunque negoziato quando la tua build di OpenSSL lo supporta. Non è necessario impostare TLS_TRUSTCERTS per servire il tuo certificato ai client di posta; quella variabile serve solo per verificare i certificati client.

Debian, Ubuntu e Devuan: su queste distribuzioni Courier è compilato con GnuTLS anziché OpenSSL, e TLS_PROTOCOL non ha alcun effetto. Imposta invece il limite minimo del protocollo con TLS_PRIORITY, ad esempio TLS_PRIORITY=NORMAL:-VERS-TLS1.0:-VERS-TLS1.1 (che lascia solo TLS 1.2 e 1.3). Il TLS_CERTFILE e il PEM combinato sopra sono identici su entrambe le build, quindi l’installazione del certificato in sé rimane invariata.

Nota sui parametri Diffie-Hellman: gli attuali pacchetti Courier generano automaticamente un file di parametri DH (tramite lo script mkdhparams e un cron job periodico) e lo leggono da TLS_DHPARAMS, quindi non è più necessario crearne uno manualmente per un’installazione standard. La vecchia direttiva TLS_DHCERTFILE è stata rimossa in Courier 4.15. Se mkdhparams non è mai stato eseguito sul tuo server, eseguilo una volta per creare il file.

Se servi anche POP3S (porta 995), apri il file di configurazione POP3, /etc/courier/pop3d-ssl (o /usr/lib/courier-imap/etc/pop3d-ssl), e applica le stesse impostazioni. Puoi riutilizzare lo stesso file PEM, oppure creare un /etc/courier/pop3d.pem dedicato con lo stesso contenuto:

TLS_CERTFILE=/etc/courier/pop3d.pem
TLS_PROTOCOL=TLSv1.2
TLS_STARTTLS_PROTOCOL=TLSv1.2

Passo 3: Riavvia Courier

Riavvia Courier in modo che carichi il nuovo certificato. Sulla maggior parte delle distribuzioni basate su systemd, riavvia i servizi SSL e il demone di autenticazione:

sudo systemctl restart courier-imap-ssl
sudo systemctl restart courier-pop3-ssl
sudo systemctl restart courier-authdaemon

Alcuni pacchetti espongono invece una singola unità combinata. Se i servizi sopra indicati non vengono trovati, prova:

sudo systemctl restart courier

Su un sistema che non usa systemd, riavvia tramite gli script propri di Courier:

/usr/lib/courier-imap/libexec/imapd-ssl.rc restart
/usr/lib/courier-imap/libexec/pop3d-ssl.rc restart

Una volta che il servizio si riavvia correttamente, il tuo nuovo certificato SSL è attivo per IMAPS (porta 993) e POP3S (porta 995), oltre che per STARTTLS sulle porte 143 e 110.

Testa la tua installazione SSL

Dopo l’installazione, conferma che il certificato venga servito correttamente. Da un terminale, apri una connessione TLS alla porta IMAPS e leggi il certificato presentato dal server:

openssl s_client -connect mail.yourdomain.com:993 -servername mail.yourdomain.com 2>/dev/null | openssl x509 -noout -issuer -subject -dates

Per POP3S, usa la porta 995. Per testare invece STARTTLS sulla porta IMAP standard, esegui:

openssl s_client -connect mail.yourdomain.com:143 -starttls imap

Il primo comando incanala la connessione in openssl x509 e stampa l’emittente, il soggetto (nome comune) e le date di validità, così puoi confermare che venga servito il certificato giusto. Il comando STARTTLS mostra l’intero handshake: controlla che l’emittente e la catena siano corretti e che appaia Verify return code: 0 (ok) verso la fine. Per un report completo sul tuo certificato e sulla sua configurazione, usa il nostro SSL Checker.

Domande frequenti

In che ordine devo combinare i file nel PEM di Courier?

Prima il certificato server, poi la catena intermedia (CA), quindi la chiave privata, tutto in un unico file PEM. Courier legge questo file da TLS_CERTFILE e presenta la catena completa ai client. La chiave privata deve essere non cifrata (senza passphrase).

Dove si trova il file di configurazione SSL di Courier?

IMAP su SSL è configurato in /etc/courier/imapd-ssl, e POP3 su SSL in /etc/courier/pop3d-ssl. Su alcune distribuzioni si trovano invece sotto /usr/lib/courier-imap/etc/. Le impostazioni STARTTLS per le porte in chiaro sono nei corrispondenti file imapd e pop3d.

Ho ancora bisogno dei parametri Diffie-Hellman (DH) per Courier?

Non manualmente per un’installazione normale. Gli attuali pacchetti Courier generano automaticamente un file di parametri DH con lo script mkdhparams e lo aggiornano periodicamente, leggendolo da TLS_DHPARAMS. La vecchia direttiva TLS_DHCERTFILE è stata rimossa in Courier 4.15. Esegui mkdhparams una sola volta solo se non esiste ancora alcun file DH.

Come disabilito SSLv3 e le vecchie versioni TLS in Courier?

Rimuovi qualsiasi riga TLS_PROTOCOL=SSL3 e imposta TLS_PROTOCOL=TLSv1.2 in imapd-ssl e pop3d-ssl. Imposta TLS_STARTTLS_PROTOCOL=TLSv1.2 per le porte STARTTLS. Il valore TLSv1.2 significa “1.2 o superiore,” quindi TLS 1.3 viene usato automaticamente quando il tuo OpenSSL lo supporta.

Come verifico il certificato dopo aver riavviato Courier?

Connettiti alla porta di posta con OpenSSL e leggi il certificato servito: openssl s_client -connect mail.yourdomain.com:993 per IMAPS, oppure aggiungi -starttls imap sulla porta 143. Conferma che l’emittente e la catena siano corretti e che l’output mostri Verify return code: 0 (ok).

Risparmia il 10% sui certificati SSL ordinando oggi stesso da SSL Dragon!

Emissione rapida, crittografia avanzata, affidabilità del browser al 99,99%, assistenza dedicata e garanzia di rimborso entro 25 giorni. Codice coupon: SAVE10

Un'immagine dettagliata di un drago in volo
Scritto da

Scrittore di contenuti con esperienza, specializzato in certificati SSL. Trasforma intricati argomenti di cybersicurezza in contenuti chiari e coinvolgenti. Contribuisci a migliorare la sicurezza digitale attraverso narrazioni d'impatto.