Lets-Encrypt
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
Web 伺服器守護程序(apache、nginx、…)僅在載入配置時載入證書,並在執行時將它們保存在記憶體中。certbot 提供了一些掛鉤參數,您可以使用這些參數在證書更新後重新載入守護程序。
文件中的範例:
certbot renew --pre-hook "service nginx stop" --post-hook "service nginx start"
不過,使用 post hook 重新載入服務就足夠了。這就是我使用的:
certbot renew --deploy-hook "service nginx reload"
當然,您可以
service nginx reload
在每次執行 certbot 後執行,但使用更新掛鉤的好處是只有在證書實際更新時才會重新載入守護程序。