CentOS 8下OpenSSL 3和OpenSSL 1共存的方法

搞了好久这个问题,现在把发现的问题记录下来。虽然标题是写CentOS 8,但是,很多Linux应该是通用的。

目前,OpenSSL 1系列还是默认安装的,如果非要安装OpenSSL 3怎么办呢?

  1. 下载OpenSSL 3的源码,可以去OpenSSL 3官网源码下载。
  2. 解压缩并进入解压后的目录,在目录里面执行./Configure && make && sudo make install,执行过程中发现有错误的话自行修复。这时,新安装的OpenSSL 3的位置在/usr/local/bin下面,原来的OpenSSL 1的位置在/usr/bin下。
  3. 安装完成以后会在/usr/local/lib64下多出来几个和OpenSSL 3相关的文件,其中两个是动态链接库文件libcrypto.so.3和libssl.so.3,以及这两个链接文件的软链接libcrypto.so和libssl.so。这个时候,由于系统不会在/usr/local/lib64下寻找动态链接库,所以,这时的openssl还是1版本的。
  4. 把上面两个软链接复制到/usr/lib64,同时,把/usr/local/bin放到$PATH中/usr/bin前面,使得新的OpenSSL 3先被找到。然后,运行ldconfig来重新刷新链接库,这时候,再尝试运行openssl version,就会发现OpenSSL的版本变为3了。

注意:这时候,再看/lib64/usr/lib64会发现,多了libcrypto.so和一个软链接libcrypto.so.3以及相应的libssl.so和软链接libssl.so.3。那问题来了,怎么还原回openssl 1呢?其实,只需要改一下$PATH的两个OpenSSL所在的目录的先后顺序即可。对于如何让链接库起作用,后续再说。

上一篇:pstack 追踪进程-转


下一篇:glibc版本号查看