天天看點

net4.6.2安裝未成功_詳解CentOS 8.2 圖文源碼安裝OpenSSL 1.1.1h

1. 簡介

OpenSSL是一個開放源代碼的軟體庫包,應用程式可以使用這個包來進行安全通信,避免竊聽,同時确認另一端連接配接者的身份。這個包廣泛被應用在網際網路的網頁伺服器上。

2. 檢視目前版本OpenSSL路徑

which openssl     //檢視目前使用的openssl,因為需要在更新openssl之後,我們需要使用軟連結将其連結回此路徑

net4.6.2安裝未成功_詳解CentOS 8.2 圖文源碼安裝OpenSSL 1.1.1h

方法一源碼手動安裝步驟:

依賴安裝

注意:安裝openssl依賴于zlib和perl-CPAN,否則會報下方3.3步驟中的錯誤

zlib的安裝可以點選:詳解CentOS 8.2圖文源碼安裝zlib 1.2.11

perl-CPAN的安裝:yum install -y perl-CPAN

3.1 擷取安裝包

在http://www.openssl.org/source/上可以擷取目前最新的版本,

wget  https://www.openssl.org/source/openssl-1.1.1h.tar.gz

如果以上位址無法下載下傳或者下載下傳慢的話,可以從以下位址下載下傳對應的openssl檔案并且上傳到個人伺服器進行後續操作

http://download.youceba.com/dir/25806543-41266762-c1884c

3.2 解壓

tar -xzvf openssl-1.1.1h.tar.gz

cd openssl-1.1..1h

3.3 配置

./config –help

# 配置參數選項

–openssldir=OPENSSLDIR #配置檔案目錄,預設是/usr/local/ssl

–prefix=DIR #安裝目錄,預設為 openssldir目錄

[no-]threads #是否編譯支援多線程的庫。預設支援

[no-]shared #是否生成動态連接配接庫。預設生成的是靜态庫。

我的配置選項指令是:

./config shared –openssldir=/data/install/openssl –prefix=/data/install/openssl

一定記得加上–shared選項, 否則openssh編譯的時候會找不到新安裝的openssl的library, 會報錯: openssl的 header和library版本不比對,如圖示:

net4.6.2安裝未成功_詳解CentOS 8.2 圖文源碼安裝OpenSSL 1.1.1h

如果是幹淨的系統安裝的話,報錯如下,缺少依賴庫perl-CPAN:

[[email protected] openssl-1.1.1h]# ./config shared --openssldir=/data/install/openssl --prefix=/data/install/openssl
Operating system: x86_64-whatever-linux2
Configuring OpenSSL version 1.1.1h (0x1010108fL) for linux-x86_64
Using os-specific seed configuration
Creating configdata.pm
Creating Makefile
Can't locate Getopt/Long.pm in @INC (you may need to install the Getopt::Long module) (@INC contains: . /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at configdata.pm line 15524.
BEGIN failed--compilation aborted at configdata.pm line 15524.
Compilation failed in require.
BEGIN failed--compilation aborted.
           

解決方案:見上述“依賴安裝”注意事項

3.4 編譯和安裝

make && make install

3.5 修改系統配置,寫入openssl庫檔案的搜尋路徑

  • 檢視openssl的路徑

which openssl

  • 檢視依賴的庫,ldd後面跟which openssl查詢出的路徑

譬如:ldd /usr/bin/openssl

net4.6.2安裝未成功_詳解CentOS 8.2 圖文源碼安裝OpenSSL 1.1.1h

如果有錯誤資訊的話,譬如沒有找到openssl的連結庫(libssl.so.1.1、libcrypto.so.1.1)并且執行openssl version也會報錯:

error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory

或者顯示的版本不是自己安裝的版本的話,譬如顯示如下:

OpenSSL 1.1.1c FIPS 28 May 2019

那麼就需要進行以下操作:

  • 添加内容,将源碼編譯的openssl路徑下的lib加入到預設搜尋路徑: /data/install/openssl/lib到/etc/ld.so.conf檔案中

echo “/data/install/openssl/lib/” >> /etc/ld.so.conf

  • 使修改後的/etc/ld.so.conf生效

ldconfig -v

OpenSSL在編譯安裝時自帶了其依賴的庫檔案,預設系統會到/usr/lib、/usr/lib64下尋找所有的庫檔案,系統中預設是沒有上述兩個庫的,需要将OpenSSL自帶的庫加入到系統環境。

  • 設定openssl指令的軟連結

mv /usr/bin/openssl /usr/bin/openssl.old

ln -s /data/install/openssl/bin/openssl  /usr/bin/openssl

  • 驗證是否安裝成功

openssl version -a

net4.6.2安裝未成功_詳解CentOS 8.2 圖文源碼安裝OpenSSL 1.1.1h

方法二安裝:

yum -y install openssl openssl-devel

繼續閱讀