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:
- Usa il nostro Generatore di CSR per creare il CSR automaticamente.
- Segui il nostro tutorial passo dopo passo su come generare un CSR su Courier IMAP Server.
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
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).
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.
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.
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.
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


