lighttp 似乎正在缓存许可证文件,但不知道为什么

lighttp 似乎正在缓存许可证文件,但不知道为什么

我正在使用 certbot 为我的网站生成 SSL 证书。我遇到了一个问题(由于 cron 脚本错误和 python2 过期,现已解决),自动更新不起作用。我的服务器上现在有最新的许可证文件。

许可证文件位于 letsencrypt 下的档案中,每次更新时数字似乎都会增加(fullchain3 是最新的):

root@mysite /etc/letsencrypt/live/mysite.com # ls -l ../../archive/mysite.com/ total 48K -rw-r--r-- 1 root root 3.4K Sep 8 2017 fullchain1.pem -rw-r--r-- 1 root root 3.5K May 8 17:02 fullchain2.pem -rw-r--r-- 1 root root 3.5K Jul 7 21:19 fullchain3.pem

符号链接指向最新的,并且 lighty 被设置为跟随该链接:

root@mysite /etc/letsencrypt/live/mysite.com # ls -l ../../live/mysite.com/fullchain.pem lrwxrwxrwx 1 root root 39 Jul 7 21:19 ../../live/mysite.com/fullchain.pem -> ../../archive/mysite.com/fullchain3.pem

然而,SSLLabs 告诉我我的证书已过期,当我检查许可证文件的序列号时,发现他们正在获取 fullchain2.pem。

Lighty 已重启。mod-compress 正在运行,即使重启,它也会缓存旧的证书文件吗?如果会,我该如何告诉它不要这样做?如果不是,原因是什么?

更新:我尝试停止 lighty,清除缓存目录并重新启动。结果相同,似乎提供了相同的文件...

答案1

好的,问题解决了。

对于 lighty,更新证书后需要执行额外的步骤。基本上,必须通过连接证书目录中的两个文件来手动创建一个新文件。请参阅以下链接:

https://www.bytebang.at/Blog/Free+SSL+certificate+for+lighttpd+with+letsencrypt

如果不这样做,lighty 的错误日志将充满“证书已过期”消息。

(这里不会提供完整的设置过程,但基本上,在更新证书后,您需要执行以下操作:

cat privkey.pem cert.pem > web.pem

应该匹配

ssl.pemfile = "/etc/letsencrypt/live/mysite.com/web.pem"

在你的 lighty 配置中。

正如下面指出的那样,实际上没有必要使用带有最新 lighty 的连接文件,但是为了更改我的(其他方面稳定的)配置,我创建了一个简单的 bash 脚本来管理证书更新并创建连接文件:

#!/bin/bash

function update_web { cd $1 if [ web.pem -ot cert.pem ]; then echo updating web.pem in $1 cat privkey.pem cert.pem > web.pem fi }

/root/certbot/certbot-auto renew --no-self-upgrade update_web /etc/letsencrypt/live/mysite.com update_web /etc/letsencrypt/live/www.mysite.com

相关内容