Статьи

Совет: исправление ошибки «сервера» LetsEncrypt в Ubuntu 16.04

Недавно мне пришлось обновить HTTPS-сертификаты для моего сервера, и я столкнулся с проблемой.

Векторный значок сервера со знаком X, указывающий на сбойное состояние, например, невосстановленные сертификаты Letsencrypt

Ошибки, которые 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 

Надеюсь, это избавило вас от неприятностей!