Пачкой обновляем сертификаты SSL на сервере
Как известно сертификаты LetsEncrypt живут только 3 месяца, и соответственно их нужно регулярно обновлять. Самый хороший и простой способ обновления сертификатов — по записи DNS, однако это подходит не всем. Обновление же сертификата записью файла в «корне» сайта тоже не всегда работает по разным причинам. Выходом может стать следующий «финт ушами»: создаем альтернативный файл виртуальных хостов (рассматриваю вариант с apache, nginx практически не использую), который используется исключительно под получение сертификатов. Т.е. логика следующая: скрипт «подменяет» файл с виртуальными хостами на временный «облегченный», apache перестартовываем, спокойно обновляем сертификаты, затем возвращаем оригинальный файл с виртуальными хостами и снова перестартовываем apache. Особенностью «временного» файла является то что задана единая точка хранения файлов которые требуется создать для обновления сертификатов.
Итак получается скрипт обновления, что-то вроде:
«Временный» файл хостов:
1 2 3 4 5 6 7 8 9 10 11 12 |
<VirtualHost *:80> ServerAdmin pawfvwervwe@mail.ru DocumentRoot "/usr/local/www/apache24/sites/lets" ServerName ewfer.tv ServerAlias www.werfer.tv wer.ru werf.ru rwefwerf.ru # перечисляем все домены которые нужно обновить <Directory "/usr/local/www/apache24/sites/lets"> Options Indexes FollowSymLinks MultiViews AllowOverride All allow from all Require all granted </Directory> </VirtualHost> |
bash скрипт обновления:
1 2 3 4 5 6 7 8 9 10 11 |
#!/bin/sh echo "- Подменяю текущий конфиг виртуальных хостов apache" cp /usr/local/etc/apache24/extra/httpd-vhosts.conf /usr/local/etc/apache24/extra/httpd-vhosts.conf.backup cp /usr/local/etc/apache24/extra/httpd-vhosts.conf.lets /usr/local/etc/apache24/extra/httpd-vhosts.conf /usr/local/etc/rc.d/apache24 restart echo "- Получаю сертификаты" certbot certonly --agree-tos --email rfer@mail.ru --webroot -w /usr/local/www/apache24/sites/lets/ -d refwer.tv certbot certonly --agree-tos --email erferf@mail.ru --webroot -w /usr/local/www/apache24/sites/lets/ -d www.ewferf.tv echo " - Возвращаю конфигурацию виртуальных хостов как было" cp /usr/local/etc/apache24/extra/httpd-vhosts.conf.backup /usr/local/etc/apache24/extra/httpd-vhosts.conf /usr/local/etc/rc.d/apache24 restart |
Да, при таком способе получается некий простой в работе сайтов. Но раз в 3 месяца, ночью это для меня приемлимый вариант.