Openssl原始碼安裝及公升級

2021-09-08 00:24:49 字數 3580 閱讀 3728

[root@bestmem ~]# rpm -qa | grep openssl

openssl-libs-1.0.2k-16.el7.x86_64

openssl-1.0.2k-16.el7.x86_64

openssl-devel-1.0.2k-16.el7.x86_64

[root@bestmem ~]# tar zxf openssl-1.1.0h.tar.gz -c /usr/local/

[root@bestmem ~]# cd /usr/local/openssl-1.1.0h/

[root@bestmem openssl-1.1.0h]# ./config --prefix=/usr/local/openssl --openssldir=/usr/local/ssl shared

[root@bestmem openssl-1.1.0h]# make && make install

[root@bestmem openssl-1.1.0h]# ln -s /usr/local/openssl/bin/openssl /usr/local/bin/openssl #建立openssl命令鏈結

–prefix:指定安裝目錄

–openssldir:指定openssl配置檔案路徑

–shared:建立動態鏈結庫

至於為什麼不需解除安裝rpm包安裝的openssl-1.0.2,而直接安裝openssl-1.1.0的原因如下:

[root@bestmem openssl-1.1.0h]# which openssl			#rpm包所安裝的openssl,其二進位制檔案位置

/usr/bin/openssl

[root@bestmem openssl-1.1.0h]# echo $path #path環境變數載入路徑順序,/usr/local/bin查詢在前

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

重啟終端後,載入新的環境變數。

[root@bestmem ~]# which openssl

/usr/local/bin/openssl

[root@bestmem ~]# openssl version

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

#建立對應的庫檔案鏈結即可

[root@bestmem ~]# ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1

[root@bestmem ~]# openssl version

openssl: error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: no such file or directory

[root@bestmem ~]# ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

[root@bestmem ~]# openssl version

openssl 1.1.0h 27 mar 2018

若編譯nginx,–with-openssl=/usr/local/openssl即可。

為什麼要公升級至openssl-1.1.1版本?因為官方將長期支援且穩定版為該版本,所以公升級是遲早得事。

注意:最新的穩定版本是1.1.1系列。這也是我們的長期支援(lts)版本,支援到2023年9月11日。我們之前的lts版本(1.0.2系列)將繼續支援到2023年12月31日(安全修復僅在支援的最後一年)。1.1.0系列目前僅接收安全修復程式,並將於2023年9月11日停止支援。鼓勵1.0.2和1.1.0的所有使用者盡快公升級到1.1.1。0.9.8,1.0.0和1.0.1版本現在不再支援,不應使用。

原始碼包編譯

[root@bestmem ~]# tar zxf openssl-1.1.1a.tar.gz -c /usr/local/

[root@bestmem ~]# cd /usr/local/openssl-1.1.1a/

[root@bestmem openssl-1.1.1a]# ./config --prefix=/usr/local/openssl-new --openssldir=/usr/local/ssl-new shared

[root@bestmem openssl-1.1.1a]# make && make install

備份openssl-1.1.0二進位制檔案,建立openssl-1.1.1二進位制檔案鏈結

[root@bestmem openssl-1.1.1a]# cd /usr/local/bin/

[root@bestmem bin]# mv openssl openssl-1.1.0.bak

[root@bestmem bin]# ll

總用量 0

lrwxrwxrwx. 1 root root 30 1月 10 01:30 openssl-1.1.0.bak -> /usr/local/openssl/bin/openssl

[root@bestmem bin]# ln -s /usr/local/openssl-new/bin/openssl /usr/local/bin/openssl

重啟終端

[root@bestmem ~]# openssl version

openssl: /lib64/libssl.so.1.1: version `openssl_1_1_1' not found (required by openssl)

openssl: /lib64/libcrypto.so.1.1: version `openssl_1_1_1' not found (required by openssl)

#更新libssl.so.1.1和libcrypto.so.1.1庫檔案的鏈結指向

[root@bestmem ~]# rm -fr /usr/lib64/libssl.so.1.1

[root@bestmem ~]# rm -fr /usr/lib64/libcrypto.so.1.1

[root@bestmem ~]# ln -s /usr/local/openssl-new/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1

[root@bestmem ~]# ln -s /usr/local/openssl-new/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

[root@bestmem ~]# openssl version

openssl 1.1.1a 20 nov 2018

Linux下原始碼安裝OpenSSL

開發環境為ubuntu 12.04,預設安裝了openssl了,可以通過 which openssl來檢視安裝位置,但是在 usr include等目錄下都找不到openssl相關的標頭檔案,所以需要從原始碼重新安裝openssl。wget tar zxvf openssl 1.0.0l.tar.g...

OpenSSL原始碼簡介

x509是由國際電信聯盟 itu t 制定的數字證書標準 包含公鑰和使用者標誌符 ca等 x509是數字證書的規範,p7和p12是兩種封裝形式 x.509是常見通用的證書格式。所有的證書都符合為public key infrastructure 制定的itu t x509國際標準。pkcs 7常用的...

Linux 從原始碼編譯安裝 OpenSSL

本文對比本機所用系統,對不一樣的地方用黃色背景高亮顯示 openssl 是一款開源的 ssl 軟體包,採用 ssl 的公開金鑰技術,用於實現傳輸層的通訊加密功能。openssl 支援 linux windows bsd mac 等平台,功能強大,包含豐富的密碼演算法庫,ssl 協議庫和應用程式。1....