Приветствую!
Небольшая предыстория. Обратился знакомый с проблемой, необходимо в автоматическом режиме обновлять сертификат 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
