使用受密码保护的 SSL 密钥在 Apache 2 上由 logrotate 导致的故障
-
09-06-2019 - |
题
我在 Debian 上安装了 Apache 2,并安装了 mod_ssl。服务器私钥受启动时需要输入的密码保护。错误和访问日志每周进行 logrotate。我发现 Apache 在 logrotate 运行后不久就崩溃并出现与密码相关的错误。
据我了解,logrotate 在归档日志后会向 Apache 发出 SIGHUP,我怀疑这会导致重新加载以及随后无法获取服务器密钥的密码。
好吧,我的理论已经足够了,这是问题:
是否有一种“最佳实践”方法来配置 Apache 以允许其 SSL 服务器密钥受密码保护(无需将该密码存储在某个文件中),以便在 logrotate 运行时不会崩溃?
在服务器启动时要求用户输入是可以的,但不需要重新启动或重新加载。
解决方案
一种选择是使用 Apache 提供的日志轮换工具。它的配置与系统 logrotate 略有不同,但由于它与管道一起使用,因此可以在不重新启动 Apache 的情况下移动文件。
其他提示
你可以使用 克罗诺洛格, ,这不需要叹息。这是一个例子:
CustomLog "| /usr/sbin/cronolog /pathtologs/%Y_%m/sitename.com-%Y%m%d.log" combined
您还可以使用以下命令关闭密码:
openssl rsa -in example.tld.key -out example.tld.key
不隶属于 StackOverflow