Сбои, вызванные logrotate на Apache 2 с ключом SSL, защищенным парольной фразой
-
09-06-2019 - |
Вопрос
У меня есть установка Apache 2 на Debian с установленным mod_ssl.Закрытый ключ сервера защищен фазой доступа, которую необходимо ввести при запуске.Журналы ошибок и доступа подлежат еженедельной ротации.Я обнаружил, что Apache аварийно завершает работу из-за ошибки, связанной с парольной фразой, вскоре после запуска logrotate.
Я понимаю, что logrotate запускает SIGHUP для Apache после архивирования журналов, и я подозреваю, что это вызывает перезагрузку и последующую неудачу при получении парольной фразы для ключа сервера.
Ну хватит моих теорий, вот вопрос:
Существует ли «лучшая практика», позволяющая настроить Apache так, чтобы его ключи SSL-сервера были защищены парольной фразой (без сохранения этой парольной фразы где-нибудь в файле), чтобы он не аварийно завершал работу при запуске logrotate?
Можно требовать ввода данных пользователем при запуске сервера, но не перезапускать или перезагружать его.
Решение
Один из вариантов — использовать предоставленный Apache инструмент ротации журналов.Он настроен немного иначе, чем системный logrotate, но, поскольку он работает с каналами, может перемещать файлы без перезапуска Apache.
Другие советы
Вы могли бы использовать хронолог, который не требует регистрации.Вот пример:
CustomLog "| /usr/sbin/cronolog /pathtologs/%Y_%m/sitename.com-%Y%m%d.log" combined
вы также можете отключить парольную фразу, используя следующую команду:
openssl rsa -in example.tld.key -out example.tld.key