[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....