当apachectl优雅时,apache采取旧的openssl库

由于心脏病的脆弱性,我已经重新编译了非易受攻击的最新版本的openssl(由于一些依赖性问题,我不得不保留旧的易受攻击的openssl)。 它运行良好,当mydomain.com heartbleedtesting它说,“似乎是固定的或不受影响”。 但是,如果我做apachectl graceful和考验heartbleed它说mydomain.com是脆弱的。 如果我做/usr/local/etc/rc.d/apache2 restartapachectl restart没有问题。

1)我的问题是,为什么只需要apachectl graceful需要旧的openssl

2)访问openssl库时, apachectl restartapachectl graceful什么区别?

在加载库方面, apachectl restartgraceful没有区别。 apachectl graceful发送SIGUSR1信号而不是SIGTERM,这样打开的连接就有了oppurtunityclosures而不是被中断。 请参阅apachectl手册页

您的系统上可能有2个安装的apache。 如果apache是​​通过你的软件包pipe理器安装的,而你在重新编译之前没有删除它,那么这可以解释奇怪的testing结果。 你可以用/usr/local/etc/rc.d/apache2 restart启动apache来启动你的重新编译的实例。 然后,当你使用apachectl这真的是/usr/sbin/apachectl它开始你的脆弱的安装,你没有通过检查。