Ошибка обновления сертификата LetsEncrypt

Я попытался обновить сертификат моего сервера. Текущий срок истек 1 месяц назад, но я не позаботился об этом до сих пор.

Я попытался использовать команду letsencrypt-auto Renew , но получил сбой:

Примечание: Я изменил имена домена / пользователя / сервера.

user@vps:~/letsencrypt# ./letsencrypt-auto renew
Updating letsencrypt and virtual environment dependencies.......
Running with virtualenv: sudo /home/user/.local/share/letsencrypt/bin/letsencrypt renew
Processing /etc/letsencrypt/renewal/www.example.com.conf
2016-04-02 07:07:00,862:WARNING:letsencrypt.cli:Attempting to renew cert from /etc/letsencrypt/renewal/www.example.com.conf produced an unexpected error: You've asked to renew/replace a seemingly valid certificate with a test certificate (domains: www.example.com, example.com). We will not do that unless you use the --break-my-certs flag!. Skipping.

All renewal attempts failed. The following certs could not be renewed:
  /etc/letsencrypt/live/www.example.com/fullchain.pem (failure)
1 renew failure(s), 0 parse failure(s)

Я тупо попробовал команду с флагом - break-my-certs :

user@vps:~/letsencrypt# ./letsencrypt-auto renew --break-my-certs
Updating letsencrypt and virtual environment dependencies...You are using pip version 7.1.2, however version 8.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
....
Running with virtualenv: /root/.local/share/letsencrypt/bin/letsencrypt renew --break-my-certs
Processing /etc/letsencrypt/renewal/www.example.com.conf
new certificate deployed with reload of apache server; fullchain is /etc/letsencrypt/live/www.example.com/fullchain.pem

Congratulations, all renewals succeeded. The following certs have been renewed:
  /etc/letsencrypt/live/www.example.com/fullchain.pem (success)

Я подумал, что это так, но когда я попытался подключиться на мой веб-сайт я получил сообщение об ошибке, сообщающее мне, что сертификат был выпущен ненадежной стороной. (Однако с датами действия все в порядке. )

Итак, я снова попробовал первую команду:

user@vps:~/letsencrypt# ./letsencrypt-auto renew
Updating letsencrypt and virtual environment dependencies.......
Running with virtualenv: /root/.local/share/letsencrypt/bin/letsencrypt renew
Processing /etc/letsencrypt/renewal/www.example.com.conf

The following certs are not due for renewal yet:
  /etc/letsencrypt/live/www.example.com/fullchain.pem (skipped)
No renewals were attempted.

Но, как видите, она не работает.

5
задан 2 April 2016 в 14:38
3 ответа

Имейте в виду, что процедура обновления с использованием letsencrypt-auto будет работать нормально, только если ваш предыдущий сертификат был выпущен с использованием letsencrypt-auto 0.4.0 или выше.Если ваш сертификат был выпущен в более старой версии letsencrypt-auto, вам необходимо снова выпустить сертификат таким же образом и с теми же параметрами и параметрами, что и в первый раз, и после этого letsencrypt-auto возобновление будет работать должным образом.

В любом случае, первое сообщение, которое вы получили при попытке продлить домен, было:

You've asked to renew/replace a seemingly valid certificate with a test certificate (domains: www.example.com, example.com). We will not do that unless you use the --break-my-certs flag!. Skipping.

И это означает, что у вас был действующий сертификат для вашего домена, но команда обновления обнаружила, что вы вместо этого пытались обновить сертификат с помощью промежуточного сервера. производственного сервера (примечание: промежуточный сервер является частью инфраструктуры letsencrypt и позволяет протестировать процесс выдачи сертификатов для вашего домена, но выдан поддельным ЦС, если вы проверите свой сертификат, вы можете увидеть, что эмитент Поддельный LE Intermediate X1 ).

Итак, когда вы повторили процесс обновления, но с флагом - break-my-certs , у вас теперь есть сертификат, выданный поддельным ЦС, который ни один из клиентов, подключится к вашему сайту, будет доверять. [12 24] Я полагаю, вы играли с некоторыми конфигами в / etc / letsencrypt / cli. {Conf, ini} , /etc/letsencrypt/renewal/yourdomain.conf или в другом конфигурационном файле вы использовали для выдачи первого сертификата, и в некоторой конфигурации вы указали постановку флага, поэтому letsencrypt-auto пытается обновить ваш сертификат, используя его вместо производства.

Выполните эту команду для вашего файла конфигурации обновления:

grep -E 'server\ =|config_file\ =' /etc/letsencrypt/renewal/yourdomain.conf

Примечание: если вы выпустили несколько сертификатов для своего домена и добавили или удалили домены из подмножества FQDN, включенных в сертификат, вместо yourdomain.conf вы могли бы иметь yourdomain-0001.conf , yourdomain-0002.conf и т. Д.

config_file покажет, используете ли вы файл конфигурации для своего домена, если вы не используете какой-либо файл конфигурации, вы увидите слово «Нет».

сервер покажет, выдаете ли вы свои сертификаты для промежуточного или производственного сервера.

Если это промежуточный, вы увидите следующее:

server = https://acme-staging.api.letsencrypt.org/directory

если он производится вы увидите:

server = https://acme-v01.api.letsencrypt.org/directory

Если вы видите, что сервер указывает на промежуточный этап, отредактируйте файл конфигурации обновления для своего домена и измените его на рабочий https://acme-v01.api.letsencrypt.org/directory

Кроме того, если у вас есть config_file, вы должны проверить этот файл конфигурации, чтобы убедиться, что параметр сервера указывает на производство, и нет таких параметров, как staging, staging = True, test-cert или test-cert = True

После того, как вы удалили промежуточные параметры и изменили сервер на производственный в config_file и файле конфигурации обновления, вы можете попробовать снова обновить свой сертификат.

./letsencrypt-auto renew --force-renewal

Если вы, наконец, получили сертификат для своего домена, обратите внимание на сообщение с поздравлением, это сообщение сообщит вам каталог, в котором хранятся ваши сертификаты, имейте это в виду, чтобы настроить свой веб-сервер, почтовый сервер и все, что угодно, с правильными путями к вашим сертификатам.

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/yourdomain/fullchain.pem. Your cert
   will expire on xxxx-xx-xx. To obtain a new version of the
   certificate in the future, simply run Let's Encrypt again.
6
ответ дан 3 December 2019 в 01:24

У меня была та же проблема, что и у операционной с использованием последнего certbot. Оказалось, что certbot вовсе не виноват - он работает идеально - вам просто нужно не забыть перезагрузить/перезагрузить ваш веб-сервер, чтобы он вытащил обновленный cert! Итак, как LetsEncrypt предлагает добавить certbot renew --quiet в Ваш cron, не забудьте добавить перезагрузку веб-сервера через несколько минут после этого, в случае если nginx /etc/init.d/nginx перезагрузка

1
ответ дан 3 December 2019 в 01:24

У меня была такая же проблема, вам нужно перезагрузить веб-сервер (Apache или nginx).
Я использовал certbot refresh --quiet для обновления.

0
ответ дан 3 December 2019 в 01:24

Теги

Похожие вопросы