Пачкой обновляем сертификаты 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 месяца, ночью это для меня приемлимый вариант.
