We are happy to announce that Vesta is back under active development as of 25 February 2024. We are working on v1 candidate and expect to engage more with the community over the coming months. We are committed to open source, and we encourage contributors to help us build the future of Vesta.
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.