apache 在执行 apachectl graceful 时使用旧的 openssl 库

apache 在执行 apachectl graceful 时使用旧的 openssl 库

由于存在 heartbleed 漏洞,我使用最新的非漏洞 openssl 重新编译了 apache(由于某些依赖性问题,我不得不保留旧的漏洞 openssl)。它运行良好,在对 mydomain.com 进行 heartbleed 测试时,它显示“似乎已修复或未受影响”。但如果我这样做apachectl graceful并进行 heartbleed 测试,它显示 mydomain.com 存在漏洞。如果我这样做/usr/local/etc/rc.d/apache2 restartapachectl restart没有问题。

1)我的问题是为什么在执行唯一操作时需要旧的 openssl 库apachectl graceful

2)访问openssl库时apachectl restart和有什么区别?apachectl graceful

答案1

在加载库方面, apachectl restart和没有区别。发送 SIGUSR1 信号而不是 SIGTERM,以便打开的连接有机会关闭而不是被中断。参见gracefulapachectl gracefulapachectl 手册页

您的系统上可能有 2 个 apache 安装。如果 apache 是通过您的包管理器安装的,并且您在重新编译之前没有将其删除,那么这可以解释奇怪的测试结果。您可能使用 which 启动 apache,这/usr/local/etc/rc.d/apache2 restart将启动重新编译的实例。然后当您使用apachectlwhich 时,它实际上/usr/sbin/apachectl启动了您的易受攻击的安装,并且您未通过检查。

相关内容