Este método permite instalar un certificado SSL Let’s Encrypt para Carbonio Community Edition en Ubuntu Server 20.04 con renovación automática.
¿Que es Let’s Encrypt?
Es una iniciativa de software libre que ha creado una entidad de certificación gratuita. Dispone de vías automáticas de validación para poder emitir certificados de forma gratuita.
https://letsencrypt.org/
¿Qué es certbot?
Certbot es un cliente automático fácil de usar que busca e implementar certificados SSL / TLS para su servidor web. Certbot fue desarrollado por EFF como cliente de Let’s Encrypt y anteriormente se conocía como «el cliente oficial de Let’s Encrypt» o «el cliente de Let’s Encrypt Python». Certbot también funciona con cualquier otra CA que admita el protocolo ACME.
https://certbot.eff.org/about/
¿Cómo instalar Let’s Encrypt para Carbonio Community Edition?
Paso 1: instalar Certbot
Es necesario usar la última versión mantenida por el equipo de Certbot, ya que la que viene con Ubuntu 20.04 está obsoleta.
Para instalar la última versión de certbot, ejecute los siguientes comandos
apt install snapd
snap install --classic certbot
ln -s /snap/bin/certbot /usr/bin/certbot
certbot --version
Ahora ejecute con certbot lo siguiente:
certbot certonly --key-type rsa --preferred-chain "ISRG Root X1" -d correo.guidocutipa.blog.bo
Después de la verificación, los archivos del certificado (certificado, clave pública y cadena) se colocan en el directorio /etc/letsencrypt/correo.guidocutipa.blog.bo/.
Al listar el contenido del directorio /etc/letsencrypt/live/correo.guidocutipa.blog.bo/. se debería tener los siguientes archivos:
cert.pem chain.pem fullchain.pem privkey.pem README
Paso 2: Preparar el certificado
Primero copiar el archivo privkey.pem a Commercial.key usando el siguiente comando:
cp /etc/letsencrypt/live/correo.guidocutipa.blog.bo/privkey.pem /opt/zextras/ssl/carbonio/commercial/commercial.key
Copiar otro certificado al directorio /tmp.
cp /etc/letsencrypt/live/correo.guidocutipa.blog.bo/cert.pem /tmp
cp /etc/letsencrypt/live/correo.guidocutipa.blog.bo/chain.pem /tmp
Ahora, adquirir la cadena ISRG Root X1 y concatenarla al archivo chain.pem.
wget -O /tmp/ISRG-X1.pem https://letsencrypt.org/certs/isrgrootx1.pem.txt
cat /tmp/ISRG-X1.pem >> /tmp/chain.pem
Paso 3: implementar el certificado
Dar acceso al archivo comercial.key usando el siguiente comando:
chown zextras:zextras /opt/zextras/ssl/carbonio/commercial/commercial.key
Ahora verificar el certificado usando:
su - zextras -c 'zmcertmgr verifycrt comm /opt/zextras/ssl/carbonio/commercial/commercial.key
La implementación solo debe ejecutarse después de completar con éxito el paso de verificación.
Finalmente, implementar el certificado y reiniciar los servicios para finalizar la implementación.
su - zextras -c 'zmcertmgr deploycrt comm /tmp/cert.pem /tmp/chain.pem'
su - zextras -c 'zmcontrol restart'
Ahora verifique el estado desde la interfaz de su correo web.
Paso 4: Renovación automática del certificado
Crear el archivo actualizarLetsencrypt.sh que contendrá los comandos necesarios para la renovación del certificado:
nano actualizarLetsencrypt.sh
certbot renew --quiet
cp /etc/letsencrypt/live/correo.guidocutipa.blog.bo/privkey.pem /opt/zextras/ssl/carbonio/commercial/commercial.key
cp /etc/letsencrypt/live/correo.guidocutipa.blog.bo/cert.pem /tmp/
cp /etc/letsencrypt/live/correo.guidocutipa.blog.bo/chain.pem /tmp/
wget -O /tmp/ISRG-X1.pem https://letsencrypt.org/certs/isrgrootx1.pem.txt
cat /tmp/ISRG-X1.pem >> /tmp/chain.pem
chown zextras:zextras /opt/zextras/ssl/carbonio/commercial/commercial.key
su - zextras -c 'zmcertmgr verifycrt comm /opt/zextras/ssl/carbonio/commercial/commercial.key /tmp/cert.pem /tmp/chain.pem'
su - zextras -c 'zmcertmgr deploycrt comm /tmp/cert.pem /tmp/chain.pem'
su - zextras -c 'zmcontrol restart'
Despues de editar el archivo conceder permisos de ejecución:
chmod +x actualizarLetsencrypt.sh
Ejecutar el archivo periódicamente mediante el crontab
crontab -e
0 4 * * * /usr/bin/certbot renew --quiet
30 4 1 * * /home/ubuntu/actualizarLetsencrypt.sh
Con certbot renew –quiet se intenta renovar el certificado todos los días a las 4 a.m.
Con el archivo actualizarLetsencrypt.sh se actualizará el certificado que estuviera renovado el primer día de cada mes a las 4:30 a.m
Se puede verificar el estado del certificado desde la interfaz de su correo web.