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 секунди.
Ако всичко е ОК трябва да видим и следното съобщение :
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[/code]
Дадох му права за изпълняване :
chmod +x /root/letsencrypt-renew.sh
и добавих в /etc/crontab следния ред :
0 3 20 * * root /root/letsencrypt-renew.sh >/dev/null 2>&1
Вижда се, че скрипта за подновяване спира nginx и monit ( в моят случай това са сървисите които трябва да се спрат ).
Така на всеки 20-ти ден от месеца в 3 сутринта, ще се пуска скрипта, който ще проверява дали всички сертификати инсталирани на сървъра имат нужда от подновяване, и ако да ще ги поднови. Разбира се, ще ми изпрати и мейл с лог-а от цялата тази работа =)
Ами това е…