Welcome LetsEncrypt

welcome letsencryptПривет,

Искам да съобщя, че от днес root.bg (и няколко под домейна ) използват валиден сертификат от Let’s Encrypt!! Welcome LetsEncrypt!

Накратко – LetsEncrypt предоставят напълно безплатно възможността, да имаме валиден SSL сертификат.

Инсталацията на letsencrypt става супер лесно :

 

beta:~# git clone https://github.com/letsencrypt/letsencrypt
beta:~# cd letsencrypt/
beta:~/letsencrypt# ./letsencrypt-auto --help

А след това следва и инсталацията на самите сертификати :

/root/.local/share/letsencrypt/bin/letsencrypt certonly --standalone -w /var/www/root.bg/ -d root.bg -d www.root.bg -d sky.root.bg -d music.root.bg -w /var/www/cdn.root.bg/ -d cdn.root.bg

За целта първо трябва да се спре уеб сървъра, докато трае самото инсталиране на сертификатите ( осъществява се обратна връзка от сървърите на letsencrypt.org към моите домейни ) – отнема около 20~30 секунди.

welcome letsencrypt

Ако всичко е ОК трябва да видим и следното съобщение :

IMPORTANT NOTES:

- Congratulations! Your certificate and chain have been saved at

   /etc/letsencrypt/live/root.bg/fullchain.pem. Your cert will expire

   on 2016-07-25. To obtain a new version of the certificate in the

   future, simply run Let's Encrypt again.

- If you like Let's Encrypt, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate

   Donating to EFF:                    https://eff.org/donate-le

Вече имаме изцяло валиден сертификат за изборените по-горе домейни 🙂 Валидността му е 2 месеца! За да не бъде изтърван и не подновен сертификата, е необходим скрипт който да се грижи за това – разбира се автоматично!

Ето и решението на този проблем.

Създадох следният скрипт, който да върши тази работа и го кръстих /root/letsencrypt-renew.sh :

#!/bin/sh

service nginx stop

service monit stop

/root/letsencrypt/letsencrypt-auto renew -nvv --standalone > /var/log/letsencrypt/renew.log ; cat /var/log/letsencrypt/renew.log |mail -s 'LetsEncrypt Renew' moqt-email@root.bg

LE_STATUS=$?

service nginx start

service monit start

if [ "$LE_STATUS" != 0 ]; then

    echo Automated renewal failed:

    cat /var/log/letsencrypt/renew.log

    exit 1

fi

Дадох му права за изпълняване :

chmod +x /root/letsencrypt-renew.sh

и добавих в /etc/crontab следния ред :

0 3 20 * * root /root/letsencrypt-renew.sh >/dev/null 2>&1

Вижда се, че скрипта за подновяване спира nginx и monit ( в моят случай това са сървисите които трябва да се спрат ).

Така на всеки 20-ти ден от месеца в 3 сутринта, ще се пуска скрипта, който ще проверява дали всички сертификати инсталирани на сървъра имат нужда от подновяване, и ако да ще ги поднови. Разбира се, ще ми изпрати и мейл с лог-а от цялата тази работа =)

Ами това е…