Недавно мне пришлось обновить HTTPS-сертификаты для моего сервера, и я столкнулся с проблемой.
Ошибки, которые sudo letsencrypt renew
команда sudo letsencrypt renew
, были следующими:
Processing /etc/letsencrypt/renewal/bitfalls.com.conf 2017-02-06 07:43:08,126:WARNING:letsencrypt.cli:Attempting to renew cert from /etc/letsencrypt/renewal/bitfalls.com.conf produced an unexpected error: 'server'. Skipping. Processing /etc/letsencrypt/renewal/test.bitfalls.com.conf 2017-02-06 07:43:08,408:WARNING:letsencrypt.cli:Attempting to renew cert from /etc/letsencrypt/renewal/test.bitfalls.com.conf produced an unexpected error: 'server'. Skipping.
Чтобы избавить вас от необходимости гуглить и экспериментировать, ошибка вызвана отсутствием записи конфигурации server
в файлах конфигурации обновления. Чтобы это исправить, вы можете начать сначала (т. /etc/letsencrypt
папку /etc/letsencrypt
и восстановить все) или вручную вставить отсутствующую запись конфигурации. Вот как ты делаешь последнее.
Обновление файлов конфигурации LetsEncrypt
Если вы зайдете в /etc/letsencrypt/renewal
, вы увидите файлы обновления сертификата вашего текущего сервера:
ls /etc/letsencrypt/renewal
У большинства из вас там будет только один, если вы не определили субдомены, и в этом случае вы должны увидеть один сертификат для каждого субдомена, который вы обслуживаете через HTTPS. Скопируйте следующую строку в буфер обмена:
server = https://acme-v01.api.letsencrypt.org/directory
Это значение записи фиктивного сервера нужно /etc/letsencrypt/renewal
в каждом из файлов в /etc/letsencrypt/renewal
, но перед [[webroot_map]]
(если она существует — в противном случае, поставить в конце).
Вот скрипт быстрого доступа, который вы можете просто вставить в папку renewal
, и он автоматически вставит эту строку в каждый файл в нужном месте:
sed -i "/[[webroot_map]]/i server = https://acme-v01.api.letsencrypt.org/directory" *.conf
После того как вы отредактируете файлы и сохраните их, запуск команды продления должен работать
sudo letsencrypt renew
Помните, что если вы используете старую версию LetsEncrypt, установленную вручную, установите версию apt с помощью:
sudo apt-get install letsencrypt
Надеюсь, это избавило вас от неприятностей!