Как стать автором
Обновить

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

Время на прочтение2 мин
Количество просмотров2.2K

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

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

Теги:
Хабы:
Всего голосов 2: ↑1 и ↓10
Комментарии8

Публикации

Истории

Ближайшие события

2 – 18 декабря
Yandex DataLens Festival 2024
МоскваОнлайн
11 – 13 декабря
Международная конференция по AI/ML «AI Journey»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань