Срок действия моего сертификата (ов) 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, но использование ловушки обновления имеет то преимущество, что демон перезагружается только в том случае, если сертификаты действительно были обновлены.