Ubuntu 2 種安裝 OpenSSL 的方法

本篇紀錄 Ubuntu 下 2 種安裝 OpenSSL 的方法,第一種為使用 apt 安裝,第二種為下載 OpenSSL 原始碼編譯安裝。

我的使用環境為 Ubuntu 16.04,也適用於 Ubuntu 18.04 跟 Ubuntu 20.04。

以下 Ubuntu 安裝 OpenSSL 的方法內容大概分為這幾部分,

  • 方法1. 使用 distribution package 安裝 OpenSSL
  • 方法2. 下載 OpenSSL 原始碼編譯與安裝 OpenSSL
  • 備份舊版本 OpenSSL

方法1. 使用 distribution package 安裝 OpenSSL

安裝前記得先 apt-get update 一下,以下為 ubuntu apt-get 安裝 OpenSSL 的指令,

1
2
sudo apt-get update
sudo apt-get install openssl

安裝後可以使用 openssl version 確認一下 openssl 的版本,

1
2
$ openssl version
OpenSSL 1.0.2g 1 Mar 2016

方法2. 下載 OpenSSL 原始碼編譯與安裝 OpenSSL

由於 apt-get 上安裝的 OpenSSL 版本太舊,不符合我的需求,那就只能自己去下載 source code 下來編譯安裝了,使用下列指令下載 OpenSSL 1.1.1o 原始碼並且解壓縮,

1
2
3
cd /usr/local/src/
sudo wget https://www.openssl.org/source/openssl-1.1.1o.tar.gz
sudo tar xvf openssl-1.1.1o.tar.gz

如果你 wget 下載時會出現憑證問題,可以使用 –no-check-certificate 選項不檢查憑證,

1
wget https://www.openssl.org/source/openssl-1.1.1o.tar.gz --no-check-certificate

接下來進行編譯與安裝 OpenSSL,zlib 選項非必要,無壓縮需求可以不加,預設安裝在 /usr/local/ssl 目錄下,也可自行指定 --prefix 選項帶入目錄,如果不用 shared 的方式則 sudo ./config no-shared 即可,

1
2
3
4
5
6
cd openssl-1.1.1o
sudo ./config shared
#sudo ./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared zlib # 指定路徑
sudo make -j4
sudo make test
sudo make install

在 /etc/ld.so.conf.d/ 目錄下新增一個 openssl-1.1.1o.conf 設定檔,

1
sudo vim /etc/ld.so.conf.d/openssl-1.1.1o.conf

開啟 openssl-1.1.1o.conf 後加入這一行

1
/usr/local/ssl/lib

重新載入動態連結,

1
sudo ldconfig -v

測試 openssl 安裝的版本,

1
2
$ openssl version
OpenSSL 1.1.1o 3 May 2022

如果要看更詳細的參數的話可以使用 openssl version -a

備份舊版本 OpenSSL

如果你已經從 apt-get 安裝過 OpenSSL,但又要編譯安裝新版本的 OpenSSL 的話,可以先將舊版本的 OpenSSL 備份起來,
把原本的 /usr/bin/openssl 重新命名成 /usr/bin/openssl-1.0.2g

1
mv /usr/bin/openssl /usr/bin/openssl-1.0.2g

建立軟連結,將 /usr/bin/openssl 指向 /usr/local/bin/openssl (1.1.1),這一步可能不需要,新版本 make install 應該會順便覆蓋 /usr/bin/openssl 的版本,

1
ln -sf /usr/local/bin/openssl /usr/bin/openssl

其它相關文章推薦
macOS 2 種安裝 OpenSSL 的方法
OpenSSL AES encryption 對稱式加密指令用法與範例
C/C++ OpenSSL AES encryption/decryption 加密解密範例
Ubuntu 安裝 protobuf
Ubuntu 安裝 gflags
Ubuntu 安裝 libevent
Ubuntu 編譯安裝 GLFW