由于存在 heartbleed 漏洞,我使用最新的非漏洞 openssl 重新编译了 apache(由于某些依赖性问题,我不得不保留旧的漏洞 openssl)。它运行良好,在对 mydomain.com 进行 heartbleed 测试时,它显示“似乎已修复或未受影响”。但如果我这样做apachectl graceful
并进行 heartbleed 测试,它显示 mydomain.com 存在漏洞。如果我这样做/usr/local/etc/rc.d/apache2 restart
或apachectl restart
没有问题。
1)我的问题是为什么在执行唯一操作时需要旧的 openssl 库apachectl graceful
?
2)访问openssl库时apachectl restart
和有什么区别?apachectl graceful
答案1
在加载库方面, apachectl restart
和没有区别。发送 SIGUSR1 信号而不是 SIGTERM,以便打开的连接有机会关闭而不是被中断。参见graceful
apachectl graceful
apachectl 手册页
您的系统上可能有 2 个 apache 安装。如果 apache 是通过您的包管理器安装的,并且您在重新编译之前没有将其删除,那么这可以解释奇怪的测试结果。您可能使用 which 启动 apache,这/usr/local/etc/rc.d/apache2 restart
将启动重新编译的实例。然后当您使用apachectl
which 时,它实际上/usr/sbin/apachectl
启动了您的易受攻击的安装,并且您未通过检查。