Заметил, что сертификат Let’s Encrypt автоматически не может обновиться, пустой запуск продления выдаёт ошибку:
certbot certonly --dry-run -d meet.netsphere.ru
nginx: [emerg] "server_names_hash_bucket_size" directive is duplicate in /etc/nginx/sites-enabled/domain.ru.conf:1
nginx restart failed
Команда тестирования конфигурации nginx ничего не обнаружила
nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Сам параметр значится дважды, один раз закомментирован в главном конфигурационном файле, второй раз используется по назначению в файле сайта
find /etc/nginx -type f -name "*.conf" -exec grep --color -Hni "server_names_hash_bucket_size" {} \;
/etc/nginx/sites-available/domain.ru.conf:1:server_names_hash_bucket_size 64;
/etc/nginx/nginx.conf:24: # server_names_hash_bucket_size 64;
Данная проблема оказалась багом certbot ещё от 21 октября 2017 года https://github.com/certbot/certbot/issues/5199. certbot перед обновлением сертификата устанавливает своё значение данной опции и получается дублирование.
Варианта решения проблемы предлагается два: использовать server_names_hash_bucket_size единожды для всех сайтов в главном nginx.conf или использовать хуки certbot для того, чтобы убрать опцию до запуска обновления сертификата и восстановить после окончания операции.