centos7.3編譯安裝OpenSSL1.1.1b
阿新 • • 發佈:2019-03-25
簡介
OpenSSL是一個開放原始碼的軟體庫包,應用程式可以使用這個包來進行安全通訊,避免竊聽,同時確認另一端連線者的身份。這個包廣泛被應用在網際網路的網頁伺服器上。
安裝
-
下載:下載地址
$ wget ftp://ftp.fi.muni.cz/pub/openssl/source/openssl-1.1.1b.tar.gz
-
安裝:
$ zxvf openssl-1.1.1b.tar.gz $ cd openssl-1.1.1b/ $ ./config --prefix=/usr/local/openssl-1.1.1b $ make && make install
-
檢查安裝結果:
$ cd /usr/local/openssl-1.1.1b/ $ ldd bin/openssl linux-vdso.so.1 => (0x00007ffc30ef0000) libssl.so.1.1 => not found libcrypto.so.1.1 => not found libdl.so.2 => /lib64/libdl.so.2 (0x00007f3d29a58000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f3d2983c000) libc.so.6 => /lib64/libc.so.6 (0x00007f3d2946f000) /lib64/ld-linux-x86-64.so.2 (0x00007f3d29c5c000)
由上面的結果發現,OpenSSL依賴的兩個庫沒找到libssl.so.1.1、libcrypto.so.1.1。
-
執行OpenSSL命令報錯:
$ ./bin/openssl version ./bin/openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
-
修復上面的報錯
$ echo "/usr/local/openssl-1.1.1b/lib/" >> /etc/ld.so.conf $ ldconfig -v
即,OpenSSL在編譯安裝時自帶了其依賴的庫檔案,預設系統會到/usr/lib、/usr/lib64下尋找所有的庫檔案,系統中預設是沒有上述兩個庫的,需要將OpenSSL自帶的庫加入到系統環境。
-
檢查是否修復
./bin/openssl version OpenSSL 1.1.1b 26 Feb 2019
-
此時需要將系統原有的openssl替換掉:
$ openssl version OpenSSL 1.0.2k-fips 26 Jan 2017 $ which openssl /usr/bin/openssl $ mv /usr/bin/openssl /usr/bin/openssl.old $ ln -s /usr/local/openssl-1.1.1b/bin/openssl /usr/bin/openssl $ openssl version OpenSSL 1.1.1b 26 Feb 2019
ldconfig和ldd
在此順便介紹兩個命令:ldconfig和ldd
ldconfig
ldconfig 命令的用途,主要是在預設搜尋目錄(/usr/lib和/usr/lib64)以及動態庫配置檔案/etc/ld.so.conf內所列的目錄下,搜尋出可共享的動態連結庫(格式lib*.so*),進而創建出動態裝入程式(ld.so)所需的連線和快取檔案。
如果要新增動態庫,只需要將庫檔案的路徑寫入到/etc/ld.so.conf檔案中,然後呼叫一下 ldconfig命令即可,如 ldconfig -v
。
ldd
ldd( list dynamic dependencies ),意思是列出動態庫依賴關係。