Назад | Перейти на главную страницу

Сертификат Let's Encrypt продлен, но сайт доставляет старый

Срок действия моего сертификата (ов) https истечет примерно через неделю, и я запустил скрипт, чтобы обновить их.

Кажется, они обновляются, так как если я попытаюсь запустить certbot-auto опять же, он покажет мне несколько сообщений о том, что срок действия сертификата должен быть ближе к сегодняшней дате.

Проблема в том, что веб-сайт выглядит так, как будто он все еще обслуживает старый сертификат. Срок годности не изменен.

Ожидается ли это? Как принудительно продлить сертификаты?

Соответствующий вывод:

$ echo | openssl s_client -connect ionicabizau.net:443 2>/dev/null | openssl x509 -noout -dates
notBefore=Aug 28 03:40:00 2016 GMT
notAfter=Nov 26 03:40:00 2016 GMT

Файлы на сервере выглядят обновленными:

$ ls
cert.pem  chain.pem  fullchain.pem  privkey.pem
$ stat -c '%y' *
2016-11-17 06:03:20.838837999 +0000
2016-11-17 06:03:20.838837999 +0000
2016-11-17 06:03:20.838837999 +0000
2016-11-17 06:03:20.838837999 +0000

Демоны веб-сервера (apache, nginx, ...) загружают сертификаты только при загрузке конфигурации и хранят их в памяти во время работы. certbot предоставляет некоторые параметры ловушки, которые вы можете использовать для перезагрузки демона после обновления сертификата.

пример из документации:

certbot renew --pre-hook "service nginx stop" --post-hook "service nginx start"

Однако перезагрузки сервиса с помощью post-hook должно хватить. Вот что я использую:

certbot renew --renew-hook "service nginx reload"

Конечно ты мог бы просто бежать service nginx reload после каждого запуска certbot, но использование ловушки обновления имеет то преимущество, что демон перезагружается только в том случае, если сертификаты действительно были обновлены.