Скрипт обновления сертификата Let’s Encrypt для Carbonio Community Edition | Carbonio CE

—

от автора

Приветствую!

Небольшая предыстория. Обратился знакомый с проблемой, необходимо в автоматическом режиме обновлять сертификат Let’s Encrypt в Carbonio CE. Пытался сделать сам, взяв за основу инструкцию, но сразу же столкнулся с проблемой, а именно:

***** Verifying '/tmp/cert.pem' against '/tmp/fullchain.pem'***ERROR: Unable to validate certificate chain: C = US, O = Internet Security Research Group, CN = ISRG Root X1

Облазив кучу форумов и статей, был написан простеньки скрипт:

#!/bin/bash  ulimit -t 20 DOMAIN=mail.example.ru checkdir="/etc/letsencrypt/live/$DOMAIN" filedb="/var/tmp/permsecdb"  out=$( exec 2>&1 umask 266 find $checkdir -type f -printf "%m\t" -exec md5sum {} \; >$filedb.tmp diff $filedb $filedb.tmp mv -f $filedb.tmp $filedb ) if [ "$out" ];then  mkdir /tmp/$DOMAIN cd /tmp/$DOMAIN  wget -4 -O /tmp/$DOMAIN/isrgrootx1.pem https://letsencrypt.org/certs/isrgrootx1.pem.txt wget -4 -O /tmp/$DOMAIN/letsencryptauthorityx3.pem https://letsencrypt.org/certs/letsencryptauthorityx3.pem.txt cat /tmp/$DOMAIN/isrgrootx1.pem > /tmp/$DOMAIN/zextras_chain.pem cat /tmp/$DOMAIN/letsencryptauthorityx3.pem >> /tmp/$DOMAIN/zextras_chain.pem cat /etc/letsencrypt/live/$DOMAIN/chain.pem >> /tmp/$DOMAIN/zextras_chain.pem  mkdir /opt/zextras/ssl/letsencrypt cp /tmp/$DOMAIN/* /opt/zextras/ssl/letsencrypt/ cp /etc/letsencrypt/live/$DOMAIN/* /opt/zextras/ssl/letsencrypt/ chown zextras:zextras -R /opt/zextras/ssl/letsencrypt sudo su - zextras -c "zmcertmgr verifycrt comm /opt/zextras/ssl/letsencrypt/privkey.pem /opt/zextras/ssl/letsencrypt/cert.pem /opt/zextras/ssl/letsencrypt/zextras_chain.pem"  mv /opt/zextras/ssl/letsencrypt/privkey.pem /opt/zextras/ssl/carbonio/commercial/commercial.key su - zextras -c "zmcertmgr deploycrt comm /opt/zextras/ssl/letsencrypt/cert.pem /opt/zextras/ssl/letsencrypt/zextras_chain.pem" su - zextras -c "zmcontrol restart" rm -r /tmp/$DOMAIN echo $out fi  exit 

Скрипт проверяет на изменения файлы сертификатов в директории /etc/letsencrypt/live/$DOMAIN/ и если видит изменения запускает процесс замены сертификата, если изменений нет, просто закрывается.

Добавляем скрипт в cron и забываем о проблеме.

За основу взял данные из этой статьи https://sysos.ru/?p=586


ссылка на оригинал статьи https://habr.com/ru/articles/748666/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *