2 giugno 2021 Roberto Puzzanghera 7 commenti
Maggiori informazioni qui:
Qui di seguito viene spiegato come installare e configurare un certificato SSL valido di Let's Encrypt per i server qmail
e dovecot
. L'installazione è ad opera del client certbot.
Certbot is part of EFF’s effort to encrypt the entire Internet. Secure communication over the Web relies on HTTPS, which requires the use of a digital certificate that lets browsers verify the identity of web servers (e.g., is that really google.com?). Web servers obtain their certificates from trusted third parties called certificate authorities (CAs). Certbot is an easy-to-use client that fetches a certificate from Let’s Encrypt—an open certificate authority launched by the EFF, Mozilla, and others—and deploys it to a web server.
certbot
Innanzitutto è necessaria una versione di python
v.3, e poi vi sono una marea di prerequisiti, perciò è consigliabile lasciar fare l'installazione al package manager della propria distribuzione. Per gli utenti Slackware c'è uno sclackbuild pronto su SBO qui e se non si ha voglia di risolvere manualmente tutte le dipendenze si può sempre usare sbotools
.
Naturalmente il certificato viene rilasciato dopo che si è data prova delle affettiva proprietà del dominio associato al certificato. Pertanto certbot
dovrà installare una "ACME challenge" (ovvero un file con un nome riconoscibile) in una directory a nostra scelta dove far girare un webserver temporaneo e recuperare l'ACME via http. Se tutto va a buon fine il certificato verrà installato in /etc/letsencrypt
.
Creiamo quindi la cartella dove "webroot" la ACME challenge dovrà essere salvata:
mkdir -p /path/to/webroot
Creare un virtual host apposito su apache. yourdomain.tld
è il dominio al quale faremo la connessione smtp
e imap/pop3
:
<VirtualHost *:80> ServerName yourdomain.tld DocumentRoot /path/to/webroot <Directory /path/to/webroot> Require all granted </Directory> </VirtualHost>
Prepariamo uno script per installare i certificati via certbot
in /usr/local/bin/my_certbot.sh
:
#!/bin/sh # CERTBOT=/usr/bin/certbot DOMAIN=yourdomain.tld $CERTBOT certonly \ --webroot \ --webroot-path /path/to/webroot \ --preferred-challenges http-01 \ -d ${DOMAIN} \ --email youremail@${DOMAIN} \ --renew-by-default \ --agree-tos \ --text # qmail cert if [ ! -d "/var/qmail/control/certs_backup" ]; then mkdir -p /var/qmail/control/certs_backup fi cp -p /var/qmail/control/*.pem /var/qmail/control/certs_backup/ cat /etc/letsencrypt/live/${DOMAIN}/privkey.pem /etc/letsencrypt/live/${DOMAIN}/fullchain.pem > /var/qmail/control/servercert.pem /usr/local/bin/qmailctl restart # dovecot cert (you have to set the path inside 10-ssl.conf accordingly) /usr/local/bin/dovecotctl restart
yourdomain.tld
sarà usato come nome del certificato stesso. Per conoscere meglio cosa può fare certbot
si può digitare:
certbot --help all
Ricordiamoci infine di settare la x
flag:
chmod +x /usr/local/bin/my_certbot.sh
Possiamo quindi eseguire lo script e se non vi saranno errori avremo ottenuto il nostro certificato.
Infine settiamo un cronjob per rinnovare il certificato una volta al mese (la validità è di 3 mesi):
15 2 20 * * /usr/local/bin/my_certbot.sh >> /var/log/cron
Ricordare di disabilitare la linea di update_tmprsadh
nel crontab.
qmail
e dovecot
Per quanto riguarda qmail
la private key e la fullchain devono essere unite in un unico file /var/qmail/control/servercert.pem
. Questo viene fatto dallo script di cui sopra e non deve essere fatto altro.
Riguardo a dovecot
invece, è sufficiente modificare il file di configurazione /usr/local/dovecot/etc/dovecot/conf.d/10-ssl.conf
come segue:
#ssl_cert = </etc/ssl/certs/dovecot.pem #ssl_key = </etc/ssl/private/dovecot.pem ssl_cert = </etc/letsencrypt/live/yourdomain.tld/fullchain.pem ssl_key = </etc/letsencrypt/live/yourdomain.tld/privkey.pem
Ora riavviare qmail
e dovecot
per abilitare il nuovo certificato.
RBL and Bordermailer
20 marzo 2023 09:31
RBL and Bordermailer
20 marzo 2023 09:13
RBL and Bordermailer
18 marzo 2023 15:52
Bug in dknewkey
18 marzo 2023 11:35
What is qq_internal_bug_?
18 marzo 2023 11:28
What is qq_internal_bug_?
18 marzo 2023 11:08
What is qq_internal_bug_?
18 marzo 2023 08:48
What is qq_internal_bug_?
18 marzo 2023 08:08
What is qq_internal_bug_?
18 marzo 2023 07:43
What is qq_internal_bug_?
18 marzo 2023 04:37
Tags
apache clamav dkim dovecot ezmlm fail2ban ftp guide hacks lamp letsencrypt linux linux-vserver lxc mariadb mediawiki mozilla mysql openboard owncloud patches php proftpd qmail qmail to postfix qmail-spp qmailadmin rbl roundcube rsync sieve simscan slackware solr spamassassin spf ssh ssl tcprules tex ucspi-tcp vpopmail vqadmin
Commenti
Differenze dei certificati autogenerati e certbot
mcmax 13 giugno 2018 16:00
La differenza tra autogerenato e Certbot è che il primo non è referenziato da una root e pertanto è definito comunque inattendibile, il secondo essendo attaccato alla radice root è valido perchè validato dal root. Ringraziamo con una donazione questa org che pur con limitazioni mette a disposizione i propri server per la gestione della autorizzazioni facendosi carico del costo del traffico dati.
Una news di pochi giorni fà: Scaduti i miei certificati autogenerati ho eseguito il rinnovo autogenerandolli come faccio da oltre 12 Anni da quando i miei server sono attivi con questa installazione (grazie ai ragazzi di sagredo per il lungo supporto) e di alcuni clienti che mi hanno affidato la gestione in sicurezza delle loro Mail Machine. Ci sono porblemi con le piattaforme Apple iMac(mail) e Mail Iphone che rifiutano a priori i certificati non attendibili e se per mac rimane la possibilità di confermare che vanno bene sugli iPhone hanno tolto (ritengo con le ultime upgrade) la spunta "Autorizza" quando si visualizzano i dettagli del certificato autogenerato. Upgradando tutti i server con i certificati Certbot la questione si è risolta. Grazie per questa guida che integrerei con l'install del certificato SSL per Dovecot
Rispondi | Permalink
Differenze dei certificati autogenerati e certbot
Roberto Puzzanghera mcmax 13 giugno 2018 17:00
Ciao, per quanto riguarda dovecot, come scritto sopra, la sola cosa da fare è settare i seguenti parametri e il gioco è fatto
Rispondi | Permalink
differenza tra fullchain e certificato
Gabriele 19 aprile 2018 14:35
Ciao Roberto, che differenza c'è nell'usare la fullchain al posto del certificato?
E cosa succede per i client se cambio la configurazione in un server di produzione?
Grazie
Gabriele
Rispondi | Permalink
differenza tra fullchain e certificato
Roberto Puzzanghera Gabriele 19 aprile 2018 15:40
non sono sicuro di aver capito bene la domanda.. con certificato intendi servercert.pem? quest'ultimo è la fusione del fullchain e della chiave privata, ad es.
il client dovrebbe assorbire in modo indolore la variazione del certificato, se questo è valido, a meno che non sia settato per fornire comunque una notifica all'utente (claws ad es. ha un'opzione del genere)
Rispondi | Permalink
differenza tra fullchain e certificato
Gabriele Roberto Puzzanghera 19 aprile 2018 18:25
La documentazione di Dovecot non indica di usare la fullchain ma il certifcato (o auto generato o acquistato) nella configurazione del SSL, e così ho fatto fino a quando non ho inizaito ad avere come riferimento la tua utilissima guida.
Per quello mi domandavo se ci fossero delle differenze nell'usare fullchain o certificato nella configurazione di Dovecot.
Grazie
Rispondi | Permalink
differenza tra fullchain e certificato
Roberto Puzzanghera Gabriele 19 aprile 2018 18:32
Ti posso assicurare che la configurazione come la descrivo sopra funziona. Non ricordo più dove ho trovato esempi identici...
Rispondi | Permalink
differenza tra fullchain e certificato
Gabriele Roberto Puzzanghera 19 aprile 2018 18:51
Si funziona, la sto usando, ero curioso di conoscere la differenza delle 2 configurazioni.
Grazie ancora
Rispondi | Permalink