Я попытался обновить сертификат моего сервера. Текущий срок истек 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.
Но, как видите, она не работает.
Имейте в виду, что процедура обновления с использованием 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.
У меня была та же проблема, что и у операционной с использованием последнего certbot. Оказалось, что certbot вовсе не виноват - он работает идеально - вам просто нужно не забыть перезагрузить/перезагрузить ваш веб-сервер, чтобы он вытащил обновленный cert! Итак, как LetsEncrypt предлагает добавить certbot renew --quiet
в Ваш cron, не забудьте добавить перезагрузку веб-сервера через несколько минут после этого, в случае если nginx /etc/init.d/nginx перезагрузка
У меня была такая же проблема, вам нужно перезагрузить веб-сервер (Apache или nginx).
Я использовал certbot refresh --quiet
для обновления.