Heartbleed:如何可靠且可移植地检查OpenSSL版本?
我一直在寻找一种可靠且可移植的方法来检查GNU / Linux和其他系统上的OpenSSL版本,因此用户可以轻松地发现由于Heartbleed错误而应该升级自己的SSL。 我以为这很容易,但是我很快在Ubuntu 12.04 LTS上遇到了最新的OpenSSL 1.0.1g问题: openssl版本-a 我原本希望看到完整版本,但我得到了: OpenSSL 1.0.1 2012年3月14日 建立于:2013年6月4日星期二07:26:06 平台:[...] 令我不愉快的是,没有显示版本字母。没有f,没有g,只有“ 1.0.1”就这样。列出的日期也无助于发现(非)漏洞版本。 1.0.1(af)和1.0.1g之间的差异至关重要。 问题: 检查版本(最好是跨发行版)的可靠方法是什么? 为什么没有显示版本号?除了Ubuntu 12.04 LTS之外,我无法在其他任何产品上进行测试。 其他人也报告了此行为。一些例子: https://twitter.com/orblivion/status/453323034955223040 https://twitter.com/axiomsofchoice/status/453309436816535554 一些(特定于发行版的)建议在其中推出: Ubuntu和Debian:apt-cache policy openssl和apt-cache policy libssl1.0.0。在此处将版本号与软件包进行比较:http : //www.ubuntu.com/usn/usn-2165-1/ Fedora 20 :(yum info openssl感谢@znmeb在Twitter上)和yum info openssl-libs 检查旧版本的OpenSSL是否仍然存在: 它并不完全可靠,但是您可以尝试lsof -n | grep ssl | grep DEL。请参阅Heartbleed:如何可靠且可移植地检查OpenSSL版本?为什么这可能对您不起作用。 事实证明,在Ubuntu和Debian上更新OpenSSL软件包并不总是足够的。您还应该更新libssl1.0.0软件包,然后-then-检查是否openssl …