让我们再次encryption证书,但网站提供旧的

我的https证书将在大约一周后过期,我运行脚本来更新它们。

他们似乎被更新,因为如果我再次运行certbot-auto ,它会告诉我一些消息,说证书到期date应该更接近今天的date。

问题是,网站看起来仍然在服务旧的证书。 到期date不变。

这是预期的吗? 如何强制更新证书?

相关产出:

 $ 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 

Web服务器deamons(apache,nginx,…)仅在加载configuration时加载证书,并在运行时将其保存在内存中。 certbot提供了一些钩子参数,你可以在更新证书后重新加载守护进程。

来自文档的示例:

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

用post钩子重新加载服务应该足够了。 这是我使用的:

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

当然,你可以在每次运行certbot之后运行service nginx reload ,但是使用renew钩子的好处是只有当证书已经被更新时,守护进程才会被重新加载。