有没有办法自动获取最新的“openssl 版本”字符串?

有没有办法自动获取最新的“openssl 版本”字符串?

我在 Serverspec 测试中进行了以下检查:

openssl_latest_version = 'OpenSSL 1.0.2h  3 May 2016'

describe command('openssl version') do
  its(:stdout) { should match openssl_latest_version }
end

有没有办法自动获取最新官方发布的 OpenSSL 在执行时返回的字符串?即根据某些调用openssl version自动设置。openssl_latest_versioncurl

我的意图是,如果安装的版本晚于当前发布的版本,则测试应该失败OpenSSL与运行测试时一样最新,但没有人工更新参数。

不要想要根据特定操作系统版本的包管理器中可用的版本进行检查,我不想安装最新版本,我只想测试失败当运行的版本与最近发布的版本不同时。

答案1

下面是一个可以实现这一功能的糟糕的小型 shell 脚本:

$ lynx -dump https://www.openssl.org/source/ |  
grep -- 'https://www.openssl.org/source/openssl-.*.tar.gz$' |  
awk '{print $2}' |  
sort -r |  
grep -v -- '-fips-' |  
grep -v -- '-pre' |  
head -n1 |  
sed -n -- 's_^https://www.openssl.org/source/openssl-\(.*\).tar.gz$_\1_p' 

截至目前,输出如下:

1.0.2h

答案2

您正在跳过链条中的几个环节。您需要根据所运行的操作系统检查包管理器中可用的最新版本。如果您管理自己的包(例如 RedHat 衍生产品的 SpaceWalk),那么这会为您的链条添加一些环节,因为您还将管理上游可用的包,因此您可以将其视为事实来源。

如果你完全脱离你的发行版所支持的 openssl 版本,直接使用 openssl 项目的最新和最好的版本,好吧,伙伴,让我们把这个地方毁掉,就像它什么都不是一样!ᕕ( ᐛ )ᕗ

你需要使用openssl 的 github 仓库,克隆并检查版本,然后编译并安装。处理依赖关系从未如此简单或者安全的!

相关内容