1. 程式人生 > 其它 >CentOS 8下OpenSSL 3和OpenSSL 1共存的方法

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所在的目錄的先後順序即可。對於如何讓連結庫起作用,後續再說。