21 marzo 2018 Roberto Puzzanghera7 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à dei domini associati al certificato. Pertanto certbot
dovrà installare una ACME challenge 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
:
<VirtualHost *:80> ServerName yourdomain.tld DocumentRoot /path/to/webroot <Directory /path/to/webroot> Require all granted </Directory> </VirtualHost>
Poi 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} -d sub.${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
Il primo dominio della lista 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
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
What about using --disable-many-domains on vpopmail configure ?
22 febbraio 2021 16:49
aliasdomain patch compilation issue
21 febbraio 2021 16:28
aliasdomain patch compilation issue
21 febbraio 2021 14:35
Lua backend
16 febbraio 2021 16:07
What about using --disable-many-domains on vpopmail configure ?
14 febbraio 2021 03:05
What about using --disable-many-domains on vpopmail configure ?
14 febbraio 2021 01:20
Lua backend
12 febbraio 2021 17:40
Lua backend
12 febbraio 2021 14:28
You step
12 febbraio 2021 14:26
You step "Installing and configuring vpopmail"
12 febbraio 2021 13:57
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 qmailadmin rbl roundcube rsync sieve simscan slackware 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