我对 openssl + httpd (SSL) 感到困惑。
我从前任管理员那里得到了一台 rhel 6 服务器来管理。该服务器托管一个 (HTTPS) 网站。
最近,我将 openssl 更新到了更新的版本 -OpenSSL 1.0.2a 2015 年 3 月 19 日
我想现在我还需要重新生成 httpd 的密钥/证书..?有人可以在这里确认或更正我吗?
编辑:问题是,即使 Openssl 是最新版本,漏洞扫描仍然显示其他情况 - TCP 443,openssl 较旧版本(<1.0.2)正在使用中。我如何检查正在使用的 openssl 是否仅为 1.0.2并且没有其他版本。?
……
Edit2:阅读新回复后添加更多信息。
一开始,安装了以下 openssl 软件包:
# yum list openssl
Installed Packages
openssl.i686 1.0.0-27.el6
openssl.x86_64 1.0.0-27.el6
我注意到为软件包(不同服务器)配置的存储库有新软件包,但 rhel6 框没有看到任何新更新。
所以我手动复制了最近的 rpm openssl 包
openssl-1.0.1e-42.el6.i686.rpm
openssl-1.0.1e-42.el6.x86_64.rpm
并删除了现有的包:
# yum remove openssl-1.0.0-27.el6.i686
It removed this version as well as several dependencies.
然后尝试安装当前版本:
# yum install openssl-1.0.1e-42.el6.i686.rpm
Setting up Install Process Examining openssl-1.0.1e-42.el6.i686.rpm:
openssl-1.0.1e-42.el6.i686 Marking openssl-1.0.1e-42.el6.i686.rpm as
an update to openssl-1.0.0-27.el6.x86_64
Error: Nothing to do
所以没有安装上。
然后我检查了当前版本:
# openssl version
OpenSSL 1.0.2a 19 Mar 2015
看来这个1.0.2a之前也安装过,现在它成为了当前版本。
……
编辑3:
添加 openssl rpm 信息:
$ rpm -q openssl
openssl-1.0.0-27.el6.x86_64
……
所以,rpm版本和openssl版本是不同的。不确定这看起来是否正确。
……
非常感谢。
答案1
这取决于您升级 OpenSSL 的原因:
如果您升级是因为它提供了原始版本中不可用的加密算法,那么您显然需要使用较新的 OpenSSL 来使用此新算法创建新密钥。
如果您由于 OpenSSL 中的某些众所周知的错误而进行了升级,并且您认为您的站点已受到威胁,那么您必须更换您的证书。无论您是否认为自己受到了损害,更换它们都是明智之举 - 只是为了安全起见;特别是如果您不知道前任管理员在维护方面做了什么。这红帽文章可能有帮助。
如果您仅作为定期维护过程的一部分进行升级,则无需更改证书。 OpenSSL 与其他软件包一样,可以由维护者定期更新,但无需每次都更换证书。
答案2
更新 OpenSSL 时通常无需重新生成密钥和证书。仅当密钥/证书创建出现问题时才需要这样做就像 Debian 遇到的问题一样。
答案3
不会。密钥和证书以独立于 OpenSSL 版本的格式存储(甚至可以与其他 SSL/TLS 实现一起使用)。唯一的可能性是,出于安全原因,OpenSSL 1.0.2 可能禁用了您的旧密钥所依赖的功能(如果您的密钥不是很旧,则不太可能)。但这很容易检查:启动你的服务器;如果您可以通过 TLS 连接,那就可以了。