Создадим скрипт и сделаем его исполняемым
touch /scripts/ssl_update.sh chmod +x /scripts/ssl_update.shСам скрипт выглядит так:
#!/bin/bash
zimbra_path="/opt/zimbra/ssl/letsencrypt"
branch_name="oldfag.ru"
# Проверяем наличие каталога, если его нет, то создаём
if [ ! -d ${zimbra_path} ]; then
mkdir -m 0700 ${zimbra_path}
chown -R zimbra: ${zimbra_path}
fi
# Функция обновления сертификата
certificate_update () {
su - zimbra -c "zmcertmgr verifycrt comm ${zimbra_path}/privkey.pem ${zimbra_path}/cert.pem ${zimbra_path}/chain.pem"
if [ $? == 1 ]; then
echo "certificate not verified"
exit 1
fi
# Сохраняем резервную копию сертификатов
cp -a /opt/zimbra/ssl/zimbra /opt/zimbra/ssl/zimbra.$(date "+%Y%m%d")
# Устанавлвием новый сертификат
cp ${zimbra_path}/privkey.pem /opt/zimbra/ssl/zimbra/commercial/commercial.key
su - zimbra -c "zmcertmgr deploycrt comm ${zimbra_path}/cert.pem ${zimbra_path}/chain.pem"
if [ $? == 1 ]; then
echo "certificate deploy failed"
exit 1
fi
su - zimbra -c "zmcontrol restart"
}
# Проверяем существование локального репозитория, если его нет, то создаём
if [ ! -d "${zimbra_path}/.git" ]; then
git clone --single-branch --branch ${branch_name} https://gituser:gituserpassword@gitlab.oldfag.ru/automation/ssl.git ${zimbra_path}/.
certificate_update
fi
# Проверяем, есть ли обновления в репозитории
cd ${zimbra_path}
git fetch
if [ $(git rev-parse HEAD) != $(git rev-parse @{u}) ]; then
git pull
certificate_update
fi
Для работы скрипта на любом другом сервере нужно изменить только 2 переменных zimbra_path - каталог, в который будут загружаться сертификаты,
и branch_name - имя ветки репозитория, в которой хранятся необходимые сертификаты.
При использовании https есть верятность того, что на сервере Zimbra будет отсутствовать корневой сертефикат удостоверяющего центра, выдвшего сертификат, используемый на сервере GitLab, в результате чего при при выполнении git [ clone | fetch | pull ] будет выдаваться сообщение об ошибке. Как это решить описано в соответствующей заметке.
Последнее, что осталось, это добавить запись в /etc/crontab для запуска скрипта по расписанию каждый день в 4 часа утра
# Update zimbra certificate
00 4 * * * root /scripts/ssl_update.sh
Meanwhile, Delaware permits casinos and poker however no sports activities betting. In addition to offering trusted safety 점보카지노 for cash funds, the best UK on-line casinos provide gamers entry to devoted customer help groups. The casino websites on our Top Seven record all present first rate customer support, some higher than others. If you favor to have customer help available 24/7, you might go for a specific casino website, similar to Grosvenor or RedKings.
ОтветитьУдалить