OpenSSL是一個廣泛使用的加密庫,實現(xiàn)SSL和TLS協(xié)議以保護(hù)計算機(jī)網(wǎng)絡(luò)上的通信。 OpenSSL被Apache Web服務(wù)器,PHP,Postfix等許多軟件廣泛使用。 OpenSSL為Chipers(AES,Blowfish,DES,IDEA等),加密散列函數(shù)(MD5,MD4,SHA-1,SHA-2等)和公鑰加密(RSA,DSA,Diffie)等不同的加密算法提供支持。 - 赫曼密鑰交換)。
在本教程中,我將逐步向您展示如何在Ubuntu 18.04和CentOS 7.5服務(wù)器上從源代碼安裝最新的穩(wěn)定OpenSSL版本。
裝一些軟件包依賴項,包括Ubuntu上的'build-essential'軟件包或者CentOS上的'Development Tools'軟件包。
在Ubuntu 18.04上
使用下面的apt命令更新Ubuntu存儲庫并安裝軟件包編譯的軟件包依賴關(guān)系。
sudo apt update
sudo apt install build-essential checkinstall zlib1g-dev -y
在CentOS 7.5上
使用yum命令安裝'開發(fā)工具'和一些軟件包庫。
yum group install 'Development Tools'
yum install perl-core zlib-devel -y
安裝完成后,請轉(zhuǎn)至下一步。
第2步 - 下載OpenSSL
在本教程中,我們將安裝OpenSSL的最新穩(wěn)定版本 - OpenSSL 1.0.2o。 您可以從OpenSSL站點下載源代碼。
轉(zhuǎn)到'/ usr / local / src'目錄并使用wget下載OpenSSL源代碼。
cd /usr/local/src/
wget https://www.openssl.org/source/openssl-1.0.2o.tar.gz
現(xiàn)在提取openssl.tar.gz文件,并轉(zhuǎn)到'openssl'目錄。
tar -xf openssl-1.0.2o.tar.gz
cd openssl-1.0.2o
第3步 - 安裝OpenSSL
在將自定義OpenSSL版本安裝到系統(tǒng)之前,讓我們使用以下命令檢查安裝的版本。
openssl version -a
我們將用最新的穩(wěn)定版本1.0.2o替換'1.1.0g'版本。
我們將把新的OpenSSL版本安裝到特定的目錄'/ usr / local / ssl',然后啟用OpenSSL的鏈接庫,并為OpenSSL配置新的二進(jìn)制PATH。
- 安裝和編譯OpenSSL
轉(zhuǎn)到openssl下載的目錄'/ usr / local / src / openssl'。
cd /usr/local/src/openssl-1.0.2o
使用下面的命令配置和編譯OpenSSL。
./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared zlib
make
make test
等待OpenSSL編譯過程。
注意:
--prefix和--openssldir =設(shè)置OpenSSL的輸出路徑。
shared = force來創(chuàng)建一個共享庫。
zlib =使用zlib庫啟用壓縮。
編譯過程完成后,使用下面的命令安裝OpenSSL。
make install
OpenSSL安裝在'/ usr / local / ssl'目錄中。
- 配置鏈接庫
接下來,我們將配置OpenSSL的共享庫。 新的OpenSSL二進(jìn)制文件將從'/ usr / local / ssl / lib'目錄加載庫文件。
轉(zhuǎn)到'/etc/ld.so.conf.d'目錄并創(chuàng)建新的配置文件'openssl-1.0.2o.conf'。
cd /etc/ld.so.conf.d/
vim openssl-1.0.2o.conf
粘貼openssl庫路徑目錄。
/usr/local/ssl/lib
保存并退出。
現(xiàn)在使用下面的命令重新加載動態(tài)鏈接。
sudo ldconfig -v
你會看到'/ usr / local / ssl / lib'目錄下的OpenSSL庫已經(jīng)被加載。
- 配置OpenSSL二進(jìn)制文件
我們將用新版本'/ usr / local / ssl / bin / openssl'替換默認(rèn)的openssl二進(jìn)制文件'/ usr / bin / openssl或/ bin / openssl'。
在Ubuntu 18.04上
備份二進(jìn)制文件。
mv /usr/bin/c_rehash /usr/bin/c_rehash.BEKUP
mv /usr/bin/openssl /usr/bin/openssl.BEKUP
使用vim編輯'/ etc / environment'文件。
vim /etc/environment
現(xiàn)在添加新的OpenSSL二進(jìn)制目錄如下
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/ssl/bin"
保存并退出。
重新加載環(huán)境文件并測試新的更新二進(jìn)制PATH。
source /etc/environment
echo $PATH
現(xiàn)在再次檢查OpenSSL二進(jìn)制文件。
which openssl
Ubuntu的二進(jìn)制路徑openssl已更新。
在CentOS 7.5上
備份centos OpenSSL二進(jìn)制文件。
mv /bin/openssl /bin/openssl.BEKUP
為OpenSSL創(chuàng)建新的環(huán)境文件。
vim /etc/profile.d/openssl.sh
粘貼下面的配置。
#Set OPENSSL_PATH
OPENSSL_PATH="/usr/local/ssl/bin"
export OPENSSL_PATH
PATH=$PATH:$OPENSSL_PATH
export PATH
保存并退出。
使openssl.sh文件成為可執(zhí)行文件。
chmod +x /etc/profile.d/openssl.sh
加載OpenSSL環(huán)境并使用下面的命令檢查PATH bin目錄。
source /etc/profile.d/openssl.sh
echo $PATH
現(xiàn)在檢查OpenSSL文件。
which openssl
CentOS的二進(jìn)制路徑openssl已更新。
第4步 - 測試
使用以下命令測試OpenSSL新版本。
openssl version -a