Tareas #5257
Usar certificados SSL validos con Let's Encrypt en Zimbra
Status: | Cerrada | Start date: | 04/07/2016 | ||
---|---|---|---|---|---|
Priority: | Normal | Due date: | |||
Assignee: | Daniel Viñar Ulriksen | % Done: | 80% | ||
Category: | - | Spent time: | 9.25 hours | ||
Target version: | - |
Related issues
History
#1 Updated by Andrés Pías almost 5 years ago
- Status changed from Nueva to En curso
Para instalar los certificados de Let's Script no necesariamente tenemos que hacerlo en el propio servidor Zimbra.
Podemos trabajar en otro servidor y luego copiarlos al servidor de destino: Godel o Dirac.
Seguimos este tutorial que nos indica como instalar un certificado SSL LetsEncrypt en Zimbra.
- Instalamos Git y clonamos el repositorio:
apt-get install git git clone https://github.com/letsencrypt/letsencrypt
- Dese el directorio de la aplicación, si tenemos un Apache en el servidor directamente podemos configurar los certificados válidos para todos los Virtual Host configurados en ese lugar:
cd letsencrypt #./letsencrypt-auto --apache
Para Zimbra en cambio, tenemos que generar un certificado independiente del servicio web que utilicemos, porque existe un proceso automático para Zimbra, luego vamos a tener que ir al directorio donde están los certificados y copiarlos manualmente../letsencrypt-auto certonly --standalone -d godel.csic.edu.uy -d correo.cup.edu.uy -d cup.edu.uy -d correo.cut.edu.uy -d cut.edu.uy -d correo.cepe.edu.uy -d cepe.edu.uy -d correo.cerrolargo.udelar.edu.uy -d cerrolargo.udelar.edu.uy -d correo.cur.edu.uy -d cur.edu.uy -d correo.cure.edu.uy -d cure.edu.uy -d correo.cucel.edu.uy -d cucel.edu.uy -d correo.interior.udelar.edu.uy -d interior.udelar.edu.uy -d correo.litoralnorte.udelar.edu.uy -d litoralnorte.udelar.edu.uy -d correo.noreste.udelar.edu.uy -d noreste.udelar.edu.uy -d correo.posgrados.udelar.edu.uy -d posgrados.udelar.edu.uy -d correo.tacuarembo.udelar.edu.uy -d tacuarembo.udelar.edu.uy
#2 Updated by Andrés Pías almost 5 years ago
(Tenemos también esta documentación que generó Rodrigo: Instructivo para instalar y configurar Let's Encrypt que luego hará que agregarlo lo que hagamos acá).
Si quisieramos generar los certificados desde un servidor externo al en cuestión (ej.: Bourdieu) tenemos que utilizar el comando manual:
./letsencrypt-auto certonly --manual -d godel.csic.edu.uy -d correo.cup.edu.uy -d cup.edu.uy -d correo.cut.edu.uy -d cut.edu.uy -d correo.cepe.edu.uy -d cepe.edu.uy -d correo.cerrolargo.udelar.edu.uy -d cerrolargo.udelar.edu.uy -d correo.cur.edu.uy -d cur.edu.uy -d correo.cure.edu.uy -d cure.edu.uy -d correo.cucel.edu.uy -d cucel.edu.uy -d correo.interior.udelar.edu.uy -d interior.udelar.edu.uy -d correo.litoralnorte.udelar.edu.uy -d litoralnorte.udelar.edu.uy -d correo.noreste.udelar.edu.uy -d noreste.udelar.edu.uy -d correo.posgrados.udelar.edu.uy -d posgrados.udelar.edu.uy -d correo.tacuarembo.udelar.edu.uy -d tacuarembo.udelar.edu.uy
El inconveniente de esto es que tenemos que en el servidor destino (ej.: Godel) correr todos estos comandos:
Make sure your web server displays the following content at http://correo.cup.edu.uy/.well-known/acme-challenge/-izDTmZRmKbH8IhAqVaQQP3u7me9j8ydpY3UKcaSlww before continuing: -izDTmZRmKbH8IhAqVaQQP3u7me9j8ydpY3UKcaSlww.cBBhxSs5F-a3fPkhkqRyKBM3xvT5u0oBYrra8Atoo28 If you don't have HTTP server configured, you can run the following command on the target server (as root): mkdir -p /tmp/letsencrypt/public_html/.well-known/acme-challenge cd /tmp/letsencrypt/public_html printf "%s" -izDTmZRmKbH8IhAqVaQQP3u7me9j8ydpY3UKcaSlww.cBBhxSs5F-a3fPkhkqRyKBM3xvT5u0oBYrra8Atoo28 > .well-known/acme-challenge/-izDTmZRmKbH8IhAqVaQQP3u7me9j8ydpY3UKcaSlww # run only once per server: $(command -v python2 || command -v python2.7 || command -v python2.6) -c \ "import BaseHTTPServer, SimpleHTTPServer; \ s = BaseHTTPServer.HTTPServer(('', 80), SimpleHTTPServer.SimpleHTTPRequestHandler); \ s.serve_forever()"
#3 Updated by Andrés Pías almost 5 years ago
- Related to Tareas #5191: Instructivo para instalar y configurar Let's Encrypt en nuestros servidores added
#4 Updated by Daniel Viñar Ulriksen almost 5 years ago
tenemos que solicitar el certificado para los dominios que utilizamos y que están configurados en el DNS a nuestros servidores.
En particular: imaps.cup.edu.uy y similares, smtps.cup.edu.uy y similares,
pero no: cup.edu.uy
Recapitulo:
./letsencrypt-auto certonly --standalone -d godel.csic.edu.uy -d correo.cup.edu.uy -d imaps.cup.edu.uy -d smtps.cup.edu.uy -d correo.cut.edu.uy -d correo.cepe.edu.uy -d correo.cerrolargo.udelar.edu.uy -d correo.cur.edu.uy -d correo.cure.edu.uy -d imaps.cure.edu.uy -d smtps.cure.edu.uy -d correo.cucel.edu.uy -d correo.interior.udelar.edu.uy -d correo.litoralnorte.udelar.edu.uy -d correo.noreste.udelar.edu.uy -d correo.posgrados.udelar.edu.uy -d correo.tacuarembo.udelar.edu.uy
#5 Updated by Daniel Viñar Ulriksen almost 5 years ago
El comando que conviene ejecutar en Dirac:
/letsencrypt-auto certonly --standalone -d dirac.csic.edu.uy -d correo.csic.edu.uy -d imaps.csic.edu.uy -d smtps.csic.edu.uy -d correo.cci.edu.uy -d imaps.cci.edu.uy -d smtps.cci.edu.uy -d correo.ei.udelar.edu.uy -d imaps.ei.udelar.edu.uy -d smtps.ei.udelar.edu.uy
#6 Updated by Daniel Viñar Ulriksen almost 5 years ago
Al instalar letsencrypt (con git) en Dirac, concluye al final:
No installers seem to be present and working on your system; fix that or try running letsencrypt with the "certonly" command
#7 Updated by Daniel Viñar Ulriksen almost 5 years ago
- File Letsencrypt_zimbra.png added
Siguiendo paso a paso este tutorial, definí los certificados del zimbra.
#8 Updated by Andrés Pías almost 5 years ago
Procedimiento en Godel¶
Se detiene el servicio de jetty o nginx de zimbra
zmproxyctl stop zmmailboxdctl stop
Obtenemos un certificado para todos los dominios
root@godel:~/letsencrypt# ./letsencrypt-auto certonly --standalone -d godel.csic.edu.uy -d correo.cup.edu.uy -d imaps.cup.edu.uy -d smtps.cup.edu.uy -d correo.cut.edu.uy -d correo.cepe.edu.uy -d correo.cerrolargo.udelar.edu.uy -d correo.cur.edu.uy -d correo.cure.edu.uy -d imaps.cure.edu.uy -d smtps.cure.edu.uy -d correo.cucel.edu.uy -d correo.interior.udelar.edu.uy -d correo.litoralnorte.udelar.edu.uy -d correo.noreste.udelar.edu.uy -d correo.posgrados.udelar.edu.uy -d correo.tacuarembo.udelar.edu.uy
La respuesta:
IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at /etc/letsencrypt/live/godel.csic.edu.uy/fullchain.pem. Your cert will expire on 2016-07-14. To obtain a new version of the certificate in the future, simply run Let's Encrypt again. - If you like Let's Encrypt, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
Vemos los certificados:
root@godel:/etc/letsencrypt/live/godel.csic.edu.uy# ls -altr total 8 lrwxrwxrwx 1 root root 44 abr 15 16:14 privkey.pem -> ../../archive/godel.csic.edu.uy/privkey1.pem lrwxrwxrwx 1 root root 46 abr 15 16:14 fullchain.pem -> ../../archive/godel.csic.edu.uy/fullchain1.pem lrwxrwxrwx 1 root root 42 abr 15 16:14 chain.pem -> ../../archive/godel.csic.edu.uy/chain1.pem lrwxrwxrwx 1 root root 41 abr 15 16:14 cert.pem -> ../../archive/godel.csic.edu.uy/cert1.pem
Let's Encrypt is almost perfect, but during the files the process built, they just add the chain.pem file without the root CA. You must to use the IdenTrust root Certificate and merge it after the chain.pem
Hay que bajar el certificado root IdenTrust para mezclarlo con chain.pem
Además hay que agregar BEGIN Y END certificate antes y despues del certificado bajado
Verficiamos:
root@godel:/etc/letsencrypt/live/godel.csic.edu.uy# nano chain.pem root@godel:/etc/letsencrypt/live/godel.csic.edu.uy# /opt/zimbra/bin/zmcertmgr verifycrt comm privkey.pem cert.pem chain.pem ** Verifying cert.pem against privkey.pem Certificate (cert.pem) and private key (privkey.pem) match. Valid Certificate: cert.pem: OK
Hacemos el backup
cp -a /opt/zimbra/ssl/zimbra /opt/zimbra/ssl/zimbra.$(date "+%Y%m%d")
Copiamos la clave privada en el directorio de zimbra:
cp /etc/letsencrypt/live/godel.csic.edu.uy/privkey.pem /opt/zimbra/ssl/zimbra/commercial/commercial.key
Luego deployamos los certificados SSL:
root@godel:/etc/letsencrypt/live/godel.csic.edu.uy# /opt/zimbra/bin/zmcertmgr deploycrt comm cert.pem chain.pem ** Verifying cert.pem against /opt/zimbra/ssl/zimbra/commercial/commercial.key Certificate (cert.pem) and private key (/opt/zimbra/ssl/zimbra/commercial/commercial.key) match. Valid Certificate: cert.pem: OK ** Copying cert.pem to /opt/zimbra/ssl/zimbra/commercial/commercial.crt ** Appending ca chain chain.pem to /opt/zimbra/ssl/zimbra/commercial/commercial.crt ** Importing certificate /opt/zimbra/ssl/zimbra/commercial/commercial_ca.crt to CACERTS as zcs-user-commercial_ca...done. ** NOTE: mailboxd must be restarted in order to use the imported certificate. ** Saving server config key zimbraSSLCertificate...done. ** Saving server config key zimbraSSLPrivateKey...done. ** Installing mta certificate and key...done. ** Installing slapd certificate and key...done. ** Installing proxy certificate and key...done. ** Creating pkcs12 file /opt/zimbra/ssl/zimbra/jetty.pkcs12...done. ** Creating keystore file /opt/zimbra/mailboxd/etc/keystore...done. ** Installing CA to /opt/zimbra/conf/ca...done.
Se reinician todos los servicios
zmcontrol restart
Finalmente entramos y funciona perfecto: https://correo.cup.edu.uy/
#9 Updated by Daniel Viñar Ulriksen almost 5 years ago
- Related to Tareas #4621: Poner al correo certificados firmados por la CA added
#10 Updated by Daniel Viñar Ulriksen over 4 years ago
- Related to Tareas #5428: Renovar certificados letsencrypt de zimbra added
#11 Updated by Daniel Viñar Ulriksen over 4 years ago
- Subject changed from Usar certificados SSL validos con Let's Scripts en Zimbra to Usar certificados SSL validos con Let's Encrypt en Zimbra
#12 Updated by Andrés Pías over 4 years ago
- Status changed from En curso to Resuelta
- Assignee changed from Andrés Pías to Daniel Viñar Ulriksen
- % Done changed from 0 to 80
Ya agregué en Instructivo para instalar y configurar Let's Encrypt el procedimiento que aplicamos para Zimbra.
Paso para cerrar.
#13 Updated by Daniel Viñar Ulriksen almost 4 years ago
- Status changed from Resuelta to Cerrada