Я надеялся, что кто-нибудь сможет удовлетворить мое любопытство о том, как certbot и nginx взаимодействуют во время обновления.
На моем хосте Linux я установил certbot и плагин certbot-nginx.
У меня были некоторые обычные определения сайтов nginx, настроенные в /etc/nginx/conf.d, и при регистрации сертификатов плагин certbot-nginx добавлял информацию TLS в эти отдельные файлы конфигурации nginx для различных сайтов.
Чтобы обновить, у меня есть следующее в службе systemd, запускаемой один раз в день:
/bin/certbot renew --non-interactive --agree-tos --no-self-upgrade --post-hook "systemctl перезагрузить nginx"
Глядя на журналы systemd с помощью journalctl, я вижу, что сертификаты обновляются, когда это необходимо.
Это работает, но меня беспокоит то, что я не могу найти в своей конфигурации ничего, что говорило бы nginx пропускать запросы через «.well-known/acme-challenge» для любого из моих доменов. Его нет ни в одном из моих файлов конфигурации nginx. Мне просто интересно, как certbot может предложить токен на этом пути. Я проверил фрагменты файловой системы на наличие «известных» и «вызовов», но ничего не нашел.Единственные «корневые» директивы в файлах конфигурации nginx моего сайта указывают на соответствующие статические сайты. Там нет ничего, кроме сайта «Это работает» по умолчанию в /usr/share/nginx/html.
Certbot запускает собственный сервер? Я сомневался, так как не думал, что он сможет привязываться к порту 80 одновременно с nginx.