搞了好久这个问题,现在把发现的问题记录下来。虽然标题是写CentOS 8,但是,很多Linux应该是通用的。
目前,OpenSSL 1系列还是默认安装的,如果非要安装OpenSSL 3怎么办呢?
./Configure && make && sudo make install
,执行过程中发现有错误的话自行修复。这时,新安装的OpenSSL 3的位置在/usr/local/bin
下面,原来的OpenSSL 1的位置在/usr/bin
下。/usr/local/lib64
下多出来几个和OpenSSL 3相关的文件,其中两个是动态链接库文件libcrypto.so.3和libssl.so.3,以及这两个链接文件的软链接libcrypto.so和libssl.so。这个时候,由于系统不会在/usr/local/lib64下寻找动态链接库,所以,这时的openssl还是1版本的。/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所在的目录的先后顺序即可。对于如何让链接库起作用,后续再说。