Lets Encrypt - автоматическое продление убило сервер
Lets Encrypt - автоматическое продление убило сервер
vesta 0.9.8 (amd64) Релиз:17. Debian 8
Сертификаты выдаются замечательно. Но сегодня произошло продление сертификата на одном домене.
После этого умер апач и не запускается.
Оказалось, после обновления сертификата был испорчен конфиг sapache2.conf в папке домена
Начало конфига было таким
IncludeOptional /home/user/conf/web/sapache2.domain.ru.conf*
</VirtualHost>
Именно так как я написал, то есть это две последние строки конфига оказались первыми.
Естественно апач с таким конфигом не смог запуститься.
Я проверил шаблоны конфигов, все нормальные (да я и не трогал шаблоны).
Кроме этого были удалены все мои правки из конфига, как я понял, просто был старый конфиг удален, а новый создан.
1. Чтобы не удалялись мои изменения, я должен вносить правки в sapache2.domain.ru.conf и apache2.domain.ru.conf?
2. Зачем после продления сертификата трогать конфиг? Названия сертификатов и пути не изменились.
3. И самый главный вопрос. Что с этим делать? Скоро начнут продляться остальные сертификаты.
Подскажите пока команду ручного продления сертификатов, хоть вручную буду пока продлять и конфиг менять.
Сертификаты выдаются замечательно. Но сегодня произошло продление сертификата на одном домене.
После этого умер апач и не запускается.
Оказалось, после обновления сертификата был испорчен конфиг sapache2.conf в папке домена
Начало конфига было таким
IncludeOptional /home/user/conf/web/sapache2.domain.ru.conf*
</VirtualHost>
Именно так как я написал, то есть это две последние строки конфига оказались первыми.
Естественно апач с таким конфигом не смог запуститься.
Я проверил шаблоны конфигов, все нормальные (да я и не трогал шаблоны).
Кроме этого были удалены все мои правки из конфига, как я понял, просто был старый конфиг удален, а новый создан.
1. Чтобы не удалялись мои изменения, я должен вносить правки в sapache2.domain.ru.conf и apache2.domain.ru.conf?
2. Зачем после продления сертификата трогать конфиг? Названия сертификатов и пути не изменились.
3. И самый главный вопрос. Что с этим делать? Скоро начнут продляться остальные сертификаты.
Подскажите пока команду ручного продления сертификатов, хоть вручную буду пока продлять и конфиг менять.
Re: Lets Encrypt - автоматическое продление убило сервер
Чтобы не удалялись изменения, правки неплохо бы вносить в шаблоны, а не напрямую в конфиги.makas wrote: 1. Чтобы не удалялись мои изменения, я должен вносить правки в sapache2.domain.ru.conf и apache2.domain.ru.conf?
А вот это хороший вопрос, очень сильно подозреваю, что он не в продлении сертификата был.makas wrote:2. Зачем после продления сертификата трогать конфиг? Названия сертификатов и пути не изменились.
Для начала восстановить хронологию событий и посмотреть в логи, если вдруг там было что-то интересное.makas wrote:3. И самый главный вопрос. Что с этим делать? Скоро начнут продляться остальные сертификаты.
Подскажите пока команду ручного продления сертификатов, хоть вручную буду пока продлять и конфиг менять.
v-update-letsencrypt-ssl
Re: Lets Encrypt - автоматическое продление убило сервер
Бывает необходимость сделать индивидуальные настройки для одного домена, например в одном домене мне нужен индивидуальный alias. Зачем же я это буду в шаблон для всех сайтов писать.skurudo wrote: Чтобы не удалялись изменения, правки неплохо бы вносить в шаблоны, а не напрямую в конфиги.
Крон на продление сертификата установлен на 01 часа 02 минуты(больше рядом в пределах 10 минут ничего нет). Я просмотрел логи, в это время сработала задача по продлению сертификатов, произошел перезапуск апача(неудачный).skurudo wrote:
2. Зачем после продления сертификата трогать конфиг? Названия сертификатов и пути не изменились.
А вот это хороший вопрос, очень сильно подозреваю, что он не в продлении сертификата был.
Дата и время изменения sapache2.conf точно такая же (разница в секунды), то есть сразу же после продления сертификата был изменен sapache2.conf.
Так же в это время 01 часа 02 минуты пришло письмо от крона
Тема: Cron sudo /usr/local/vesta/bin/v-update-letsencrypt-ssl
Текст:
Error: apache2 restart failed
Error: apache2 restart failed
Error: apache2 restart failed
Так же в это же время пришли еще 4 письма от панели с таким текстом
Usage: apache2 {start|stop|graceful-stop|restart|reload|force-reload|start-htcacheclean|stop-htcacheclean}
Job for apache2.service failed. See 'systemctl status apache2.service' and 'journalctl -xn' for details.
Я не знаю, что тут может вызвать сомнения, что именно после v-update-letsencrypt-ssl, был создан корявый sapache2.conf ?
Именно с этого я утро и начал, даже писем от крона не видел еще. Именно по логам я и увидел, что после крона и был перезапуск и он не удался. (Кстати в логах ошибок апача не было ничего). Я даже не подумал, что мог быть изменен конфиг. Выполнил команду systemctl status apache2.service и сразу же увидел косяк в конфиге. Ну и сразу посмотрел дату и время изменения конфига (она совпала с запуском v-update-letsencrypt-ssl)skurudo wrote:Для начала восстановить хронологию событий и посмотреть в логи, если вдруг там было что-то интересное.
Открыл конфиг и был очень удивлен.
Re: Lets Encrypt - автоматическое продление убило сервер
Я сейчас просмотрел как реализовано продление сертификата у вас. Удаляется старый конфиг и старые сертификаты, а затем создается новый конфиг.skurudo wrote:2. Зачем после продления сертификата трогать конфиг? Названия сертификатов и пути не изменились.
А вот это хороший вопрос, очень сильно подозреваю, что он не в продлении сертификата был.
Ну так где-то тут и есть глюк значит?
А еще вижу у вас парсинг конфигов. И возможно если конфиг измененный был(отличается от шаблона), то и возникают накладки и втыкаются куски из разных мест?
Re: Lets Encrypt - автоматическое продление убило сервер
makas, а какие шаблоны у вас сейчас стоят?
Re: Lets Encrypt - автоматическое продление убило сервер
Не совсем понял вопрос, вам названия шаблонов или что? Вобщем то я шаблоны вообще не трогал, не удалял, не создавал и не менял. Юзеров и домены создаю на шаблонах по умолчанию. То есть у меня все шаблоны как поставились так и стоят.skurudo wrote:makas, а какие шаблоны у вас сейчас стоят?
Re: Lets Encrypt - автоматическое продление убило сервер
Я вам подробно объясню.
По умолчанию в phpmyadmin можно попасть с любого домена, например domain.ru/phpmyadmin
Но я хочу, чтобы в phpmyadmin был доступ только с одного домена,
поэтому я удалил Alias /phpmyadmin /usr/share/phpmyadmin из etc/phpmyadmin/apache.conf
И прописал его в конфиге(sapache2.conf) нужного мне домена
alias я вставил между другими aliasАМИ добавив пустые строки до и после, то есть получилось так
Получается я добавил три строки в конфиг (alias и две пустые строки)
Именно столько строк с конца вставилось в новый конфиг вначало.
То есть тоже три строки.
Может быть как раз и произошло смещение?
Такое ощущение, что ваш скрипт посчитал сколько строк было в моем конфиге, а потом взял шаблон и построчно начал его вставлять, начиная с последней строки и когда строки кончились он продолжил заполнять конфиг строками из шаблона.
В итоге получилось, количество строк в конфиге осталось как и было у меня, но вот содержимое...
По умолчанию в phpmyadmin можно попасть с любого домена, например domain.ru/phpmyadmin
Но я хочу, чтобы в phpmyadmin был доступ только с одного домена,
поэтому я удалил Alias /phpmyadmin /usr/share/phpmyadmin из etc/phpmyadmin/apache.conf
И прописал его в конфиге(sapache2.conf) нужного мне домена
alias я вставил между другими aliasАМИ добавив пустые строки до и после, то есть получилось так
Code: Select all
ScriptAlias /cgi-bin/ /home/admin/web/domain.ru/cgi-bin/
Alias /phpmyadmin /usr/share/phpmyadmin
Alias /vstats/ /home/admin/web/domain.ru/stats/
Именно столько строк с конца вставилось в новый конфиг вначало.
Code: Select all
IncludeOptional /home/admin/conf/web/sapache2.domain.ru.conf*
</VirtualHost>
Может быть как раз и произошло смещение?
Такое ощущение, что ваш скрипт посчитал сколько строк было в моем конфиге, а потом взял шаблон и построчно начал его вставлять, начиная с последней строки и когда строки кончились он продолжил заполнять конфиг строками из шаблона.
В итоге получилось, количество строк в конфиге осталось как и было у меня, но вот содержимое...
Re: Lets Encrypt - автоматическое продление убило сервер
Именно названия шаблоновmakas wrote:Не совсем понял вопрос, вам названия шаблонов или что? Вобщем то я шаблоны вообще не трогал, не удалял, не создавал и не менял. Юзеров и домены создаю на шаблонах по умолчанию. То есть у меня все шаблоны как поставились так и стоят.skurudo wrote:makas, а какие шаблоны у вас сейчас стоят?
и не было ли там force-https
Re: Lets Encrypt - автоматическое продление убило сервер
basedir
default
hosting
phpcgi
phpfcgid
default
hosting
phpcgi
phpfcgid
Re: Lets Encrypt - автоматическое продление убило сервер
...
Last edited by bizon on Sat Apr 01, 2017 7:00 pm, edited 1 time in total.