Для Apache 2.4: «apachectl graceful» («перезагрузка») перезагружает сертификаты для меня (тестируется с помощью ubuntu 16.04 с использованием 2.4.18-2ubuntu3). Предостережение: в Интернете много информации, в которой говорится, что apache требует полного перезапуска вместо перезагрузки для приема новых сертификатов. Поскольку для меня достаточно изящной перезагрузки, я бы сказал, что это возможно, возможно, даже вероятно, что для более старых версий Apache нужно было больше, чем перезагрузка?
Вы можете создать скрипт, который сначала обновит certbot, а затем apachectl изящный. Или просто 2 cronjobs, где apachectl изящный происходит после certbot cronjob.
Эта проблема не так плоха, хотя ИМХО: Letsencrypt возобновит сертификаты до 30 дней до истечения срока действия. Лично я перезапускаю свои серверы чаще, потому что мой еженедельный ubuntu autoupdater настроен в «/etc/apt/apt.conf.d/50unattended-upgrades» с помощью «Автоматический перезапуск :: Автоматическая перезагрузка» «true»; и вероятность того, что у него не будет обновления, которое заставляет его перезагружаться в течение 30 дней, довольно низкое.
Если вы не хотите перезагрузки, вам нужно будет проверить ваши другие услуги (postfix, dovecot приходят на ум, если у вас также есть почта на сервере) на то, что им нужно, чтобы принять новый сертификат, а затем добавить это к ваш скрипт, который запускает «certbot renew».
Через некоторое время я получаю этот ответ. Но теперь у меня возникают проблемы: я не хочу, чтобы мои веб-сайты через HTTP. И webroot должен выполнить вызов по HTTP. Вы знаете альтернативный способ выполнения задачи с использованием HTTPS без остановки или перезапуска Apache? –
@HugoFonseca Если я правильно понял ваш вопрос, должно быть возможно разрешить только HTTP-подключения к временным файлам в $ {webroot-path} /. Хорошо известном/acme-challenge, в то же время требуя HTTPS для остальной части вашего сайта , Я могу представить несколько способов сделать это в конфигурации сервера, возможно, самым простым может быть правило перезаписи URL-адресов в файле .htaccess. Это зависит от того, как вы хотите заставить HTTPS для остальной части вашего сайта, но по существу вы просто создадите исключение для этого каталога. –