CentOS7升级OpenSSL3.5.4

(1).实验环境

4核8G  CentOS7.9.2009

配置阿里云yum源和阿里云epel源

(2).源码安装OpenSSL3.5.4

  下载地址:https://openssl-library.org/source/

  1、安装依赖

[root@localhost ~]# yum -y groupinstall "Development Tools"    #安装Openssl的依赖
[root@localhost ~]# yum -y install perl-core zlib zlib-devel wget curl tar

  2、编译安装

[root@localhost ~]# tar xvf openssl-3.5.4.tar.gz
[root@localhost ~]# cd openssl-3.5.4
[root@localhost openssl-3.5.4]# ./Configure linux-x86_64 --prefix=/usr/local/openssl-3.5.4 --openssldir=/usr/local/openssl-3.5.4/ssl \
 enable-zlib enable-threads enable-dynamic-engine shared
# linux-x86_64 表示 64 位 Linux 系统(x86_64 架构)
# --prefix=/usr/local/openssl-3.5.4 安装根目录
# --openssldir=/usr/local/openssl-3.5.4/ssl 运行时配置目录
# enable-zlib:启用压缩支持
# enable-threads 启用多线程支持
# enable-dynamic-engine 启用动态引擎加载
# shared:启用共享库(libssl.so / libcrypto.so)
[root@localhost openssl-3.5.4]# echo $?  #检查上一个命令是否有异常
0
[root@localhost openssl-3.5.4]# make -j$(nproc)  #最大内核数进行编译
[root@localhost openssl-3.5.4]# echo $?  #检查上一个命令是否有异常
0
[root@localhost openssl-3.5.4]# make install
[root@localhost openssl-3.5.4]# echo $?  #检查上一个命令是否有异常
0

  3、配置环境变量

[root@localhost openssl-3.5.4]# echo "export PATH=/usr/local/openssl-3.5.4/bin:$PATH" >> /etc/profile
#.so(Shared Libraries)共享库,当您运行一个程序时,如果该程序依赖某些外部库文件,系统就会去这个文件中列出的路径里寻找这些库
[root@localhost openssl-3.5.4]# echo "export LD_LIBRARY_PATH=/usr/local/openssl-3.5.4/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}" >> /etc/profile
#.pc(pkg-config)包配置文件,用于存储系统上可用库的信息,包括版本信息、编译和连接需要的参数等
[root@localhost openssl-3.5.4]# echo "export PKG_CONFIG_PATH=/usr/local/openssl-3.5.4/lib64/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}}" >> /etc/profile
[root@localhost openssl-3.5.4]# source /etc/profile

(3).保命测试

  1、验证命令行工具版本

    检查当前默认版本。预期结果:显示你新安装的版本(如 OpenSSL 3.5.4)。-a 参数会显示编译路径等详细信息,确认它来自 /usr/local/openssl-3.5.4/ 而不是 /usr/。

[root@localhost openssl-3.5.4]# openssl version -a
OpenSSL 3.5.4 30 Sep 2025 (Library: OpenSSL 3.5.4 30 Sep 2025)
built on: Thu Jan 22 00:59:55 2026 UTC
platform: linux-x86_64
options:  bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DZLIB -DNDEBUG
OPENSSLDIR: "/usr/local/openssl-3.5.4/ssl"
ENGINESDIR: "/usr/local/openssl-3.5.4/lib64/engines-3"
MODULESDIR: "/usr/local/openssl-3.5.4/lib64/ossl-modules"
Seeding source: os-specific
CPUINFO: OPENSSL_ia32cap=0xfefa32034f8bffff:0x18400704219c27ab:0x00000810bc004410:0x0000000000000000:0x0000000000000000

    检查旧版本是否还在。预期结果:显示旧版本(如 OpenSSL 1.0.2k)。这证明你没有删除或覆盖系统自带的旧版本,系统工具依然有“老库”可用。

[root@localhost openssl-3.5.4]# /usr/bin/openssl version
OpenSSL 1.0.2k-fips  26 Jan 2017

  2、验证动态库链接

    检查新命令依赖的库。预期结果:看到类似 libssl.so.3 和 libcrypto.so.3 的路径指向 /usr/local/openssl-3.5.4/lib64/

[root@localhost openssl-3.5.4]# ldd /usr/local/openssl-3.5.4/bin/openssl | grep ssl
	libssl.so.3 => /usr/local/openssl-3.5.4/lib64/libssl.so.3 (0x00007fe894dd0000)
	libcrypto.so.3 => /usr/local/openssl-3.5.4/lib64/libcrypto.so.3 (0x00007fe89465a000)

    检查旧命令依赖的库。预期结果:看到类似 libssl.so.10 和 libcrypto.so.10 的路径指向 /lib64/ 或 /usr/lib64/

[root@localhost openssl-3.5.4]# ldd /usr/bin/openssl | grep ssl
	libssl.so.10 => /lib64/libssl.so.10 (0x00007ff956b5e000)

    检查系统工具(如 curl)依赖的库。预期结果:必须指向旧版的 libssl.so.10。如果这里指向了新版,curl 很可能无法运行。

[root@localhost openssl-3.5.4]# ldd /usr/bin/curl | grep ssl
	libssl3.so => /lib64/libssl3.so (0x00007f2f8ce6b000)
	libssl.so.10 => /lib64/libssl.so.10 (0x00007f2f89fee000)

  3、验证系统核心功能

    测试 yum。预期结果:正常显示版本号。如果报错 libssl.so.10 或 libcrypto.so.10 找不到,说明系统库配置丢了,yum 无法使用。

[root@localhost openssl-3.5.4]# yum --version
3.4.3
  Installed: rpm-4.11.3-48.el7_9.x86_64 at 2026-01-22 00:55
  Built    : CentOS BuildSystem <http://bugs.centos.org> at 2021-11-24 16:33
  Committed: Michal Domonkos <mdomonko@redhat.com> at 2021-11-01

  Installed: yum-3.4.3-168.el7.centos.noarch at 2026-01-11 11:26
  Built    : CentOS BuildSystem <http://bugs.centos.org> at 2020-10-01 17:03
  Committed: CentOS Sources <bugs@centos.org> at 2020-09-29

  Installed: yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch at 2026-01-11 11:26
  Built    : CentOS BuildSystem <http://bugs.centos.org> at 2020-05-12 16:27
  Committed: Michal Domonkos <mdomonko@redhat.com> at 2020-03-12

    测试网络工具。预期结果:正常返回 HTTP 头信息。如果报错 SSL 相关错误,说明 curl 的依赖断了。

[root@localhost openssl-3.5.4]# curl -I http://www.baidu.com
HTTP/1.1 200 OK
Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
Content-Length: 0
Content-Type: text/html
Pragma: no-cache
Server: bfe
Date: Thu, 22 Jan 2026 01:12:28 GMT

  4、验证新版本功能

    如果你升级是为了用新特性(如 TLS 1.3),可以用新命令测试。预期结果:能成功建立 TLS 1.3 连接。这证明新版本不仅安装了,而且功能正常。

[root@localhost openssl-3.5.4]# /usr/local/openssl-3.5.4/bin/openssl s_client -connect www.example.com:443 -tls1_3
Connecting to 104.18.27.120
CONNECTED(00000003)
depth=3 C=US, O=SSL Corporation, CN=SSL.com TLS ECC Root CA 2022
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=2 C=US, O=SSL Corporation, CN=SSL.com TLS Transit ECC CA R2
verify return:1
depth=1 C=US, O=SSL Corporation, CN=Cloudflare TLS Issuing ECC CA 3
verify return:1
depth=0 CN=example.com
verify return:1
---
Certificate chain
 0 s:CN=example.com
   i:C=US, O=SSL Corporation, CN=Cloudflare TLS Issuing ECC CA 3
   a:PKEY: EC, (prime256v1); sigalg: ecdsa-with-SHA256
   v:NotBefore: Dec 16 19:39:32 2025 GMT; NotAfter: Mar 16 18:32:44 2026 GMT
 1 s:C=US, O=SSL Corporation, CN=Cloudflare TLS Issuing ECC CA 3
   i:C=US, O=SSL Corporation, CN=SSL.com TLS Transit ECC CA R2
   a:PKEY: EC, (prime256v1); sigalg: ecdsa-with-SHA384
   v:NotBefore: May 29 19:49:45 2025 GMT; NotAfter: May 27 19:49:44 2035 GMT
 2 s:C=US, O=SSL Corporation, CN=SSL.com TLS Transit ECC CA R2
   i:C=US, O=SSL Corporation, CN=SSL.com TLS ECC Root CA 2022
   a:PKEY: EC, (secp384r1); sigalg: ecdsa-with-SHA384
   v:NotBefore: Oct 21 17:02:23 2022 GMT; NotAfter: Oct 17 17:02:22 2037 GMT
 3 s:C=US, O=SSL Corporation, CN=SSL.com TLS ECC Root CA 2022
   i:C=GB, ST=Greater Manchester, L=Salford, O=Comodo CA Limited, CN=AAA Certificate Services
   a:PKEY: EC, (secp384r1); sigalg: sha256WithRSAEncryption
   v:NotBefore: Aug  1 00:00:00 2025 GMT; NotAfter: Dec 31 23:59:59 2028 GMT
---
Server certificate
-----BEGIN CERTIFICATE-----
MIID5jCCA4ygAwIBAgIQHt6YMH6gWUgj6oG69hVKZzAKBggqhkjOPQQDAjBRMQsw
CQYDVQQGEwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSgwJgYDVQQDDB9D
bG91ZGZsYXJlIFRMUyBJc3N1aW5nIEVDQyBDQSAzMB4XDTI1MTIxNjE5MzkzMloX
DTI2MDMxNjE4MzI0NFowFjEUMBIGA1UEAwwLZXhhbXBsZS5jb20wWTATBgcqhkjO
PQIBBggqhkjOPQMBBwNCAAQxGeN57lXS1F2bzwodXUhr+ATB5io3CVYr/hHs4/rb
3mvCUW52NRIbNkrRHQ2uMGU5uwBkjIaIDqay+5zgOsOUo4ICfzCCAnswDAYDVR0T
AQH/BAIwADAfBgNVHSMEGDAWgBSDA/3n9vVKTRVB9O0iFtMyCj7KZjBsBggrBgEF
BQcBAQRgMF4wOQYIKwYBBQUHMAKGLWh0dHA6Ly9pLmNmLWkuc3NsLmNvbS9DbG91
ZGZsYXJlLVRMUy1JLUUzLmNlcjAhBggrBgEFBQcwAYYVaHR0cDovL28uY2YtaS5z
c2wuY29tMCUGA1UdEQQeMByCC2V4YW1wbGUuY29tgg0qLmV4YW1wbGUuY29tMCMG
A1UdIAQcMBowCAYGZ4EMAQIBMA4GDCsGAQQBgqkwAQMBATATBgNVHSUEDDAKBggr
BgEFBQcDATBTBgNVHR8ETDBKMEigRqBEhkJodHRwOi8vYy5jZi1pLnNzbC5jb20v
YWU4MDFlZDFjNTViYjU3OWQ3OTIwOGIwZDc3MmFjZmI4Y2MzYTIwOC5jcmwwDgYD
VR0PAQH/BAQDAgeAMA8GCSsGAQQBgtpLLAQCBQAwggEDBgorBgEEAdZ5AgQCBIH0
BIHxAO8AdgBkEcRspBLsp4kcogIuALyrTygH1B41J6vq/tUDyX3N8AAAAZsotfor
AAAEAwBHMEUCIH6tkhTl46lP0v/8OqzmV0Vv6DV2BwGM4ti3XoDRQ1nFAiEA86Rz
a7JZdJ606/IiceXynxVojyGT9ln8CuejwqnEv0EAdQDLOPcViXyEoURfW8Hd+8lu
8ppZzUcKaQWFsMsUwxRY5wAAAZsotfpMAAAEAwBGMEQCIHy1dzJqqc7jEtWwPemT
AYGpiVj3fLkRhQ3yac050aCYAiAaMfO5uaoqMBAyDjjmGbPuXR+Zj+0srsBcuev+
5cHDajAKBggqhkjOPQQDAgNIADBFAiEA8GtCQg+hhl3iG0L+9oJoB11mxvmgxw1W
ItuzTEQUqM8CIEsu4IvUQFmf2RYc3XiMWn+jQHISY/4G22VAmCdC9W28
-----END CERTIFICATE-----
subject=CN=example.com
issuer=C=US, O=SSL Corporation, CN=Cloudflare TLS Issuing ECC CA 3
---
No client certificate CA names sent
Peer signing digest: SHA256
Peer signature type: ecdsa_secp256r1_sha256
Negotiated TLS1.3 group: X25519MLKEM768
---
SSL handshake has read 5070 bytes and written 1562 bytes
Verification error: unable to get local issuer certificate
---
New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384
Protocol: TLSv1.3
Server public key is 256 bit
This TLS version forbids renegotiation.
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 20 (unable to get local issuer certificate)
---
---
Post-Handshake New Session Ticket arrived:
SSL-Session:
    Protocol  : TLSv1.3
    Cipher    : TLS_AES_256_GCM_SHA384
    Session-ID: 97546CE3CF4E86749ED4A2494FD3C14C077434FBCEE3FE68F58C6A5454BA3A75
    Session-ID-ctx: 
    Resumption PSK: 6FE16808A8996D8679DCCA9814E3C51FE60D93E652D75DF9873C811468ECF2D065B002FD1784DE85548270621DB17876
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 64800 (seconds)
    TLS session ticket:
    0000 - 1c d6 82 8d 48 50 7f 53-43 94 58 b3 5e 3d b4 95   ....HP.SC.X.^=..
    0010 - 5e 2b 49 86 bb c6 d9 d9-db 5f f6 d7 68 91 02 00   ^+I......_..h...
    0020 - 25 70 cb ce ab e9 bf 36-49 1d 40 77 23 9d 49 70   %p.....6I.@w#.Ip
    0030 - b5 3d 36 1e d4 e5 04 05-13 c6 59 6b bd 44 15 41   .=6.......Yk.D.A
    0040 - 72 72 43 5b 13 ee a0 ac-5a 78 72 7d ab a9 10 11   rrC[....Zxr}....
    0050 - fe 35 10 6c 8c eb 10 ee-9c ca 39 3c 44 49 c0 7b   .5.l......9<DI.{
    0060 - 5b 71 ee 77 b2 b0 92 bb-29 bb 79 54 42 89 e9 b2   [q.w....).yTB...
    0070 - c2 b5 d3 8b 3a c2 27 bf-ce ca 03 34 38 65 39 80   ....:.'....48e9.
    0080 - 4c e5 30 7e 9a b3 ed c6-fb ca 8a 84 f7 32 9a d8   L.0~.........2..
    0090 - 56 0d e3 a3 e1 06 b5 5f-80 4d 0a e2 d1 cd ec 52   V......_.M.....R
    00a0 - 46 ed 7a 82 3a 24 f4 f6-48 5c f6 21 c9 94 12 f0   F.z.:$..H\.!....
    00b0 - b0 a8 52 3d e7 d7 25 89-79 16 a6 43 27 42 a7 8e   ..R=..%.y..C'B..

    Start Time: 1769044439
    Timeout   : 7200 (sec)
    Verify return code: 20 (unable to get local issuer certificate)
    Extended master secret: no
    Max Early Data: 0
---
read R BLOCK
---
Post-Handshake New Session Ticket arrived:
SSL-Session:
    Protocol  : TLSv1.3
    Cipher    : TLS_AES_256_GCM_SHA384
    Session-ID: 555BC06BCDC2C890C74F13C88B23F522B603509E757D8F96ABFE436195E67F04
    Session-ID-ctx: 
    Resumption PSK: EAC151BD715F1532F5B0E2B61DA29A10910267103EF15CCBDC4AF87591A0159B80264D63AAF4C641D806F35BE54D0E4E
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 64800 (seconds)
    TLS session ticket:
    0000 - 1c d6 82 8d 48 50 7f 53-43 94 58 b3 5e 3d b4 95   ....HP.SC.X.^=..
    0010 - 62 17 1c d4 ae ef 17 81-c2 a2 62 c5 40 cb ca 24   b.........b.@..$
    0020 - 58 4d 42 33 a0 78 92 b9-2c b3 4b d5 5e f2 6f 71   XMB3.x..,.K.^.oq
    0030 - 74 f0 b2 1a 10 b4 a9 11-60 03 81 7d 28 4c 29 3e   t.......`..}(L)>
    0040 - d3 94 71 86 99 f0 86 82-93 7d ed 81 38 55 31 20   ..q......}..8U1 
    0050 - cf 63 c6 0d 9d b7 fa 49-5f 8c 7b b0 73 ca d0 87   .c.....I_.{.s...
    0060 - 27 5d 98 46 25 dc 3a 14-f7 dd 98 a0 d0 83 92 5b   '].F%.:........[
    0070 - ae a3 f4 6b 78 e4 51 38-e0 06 25 7f 43 b3 67 1c   ...kx.Q8..%.C.g.
    0080 - 34 22 61 a5 d8 cd ed 8c-c4 9f 74 1a 7b f5 68 e9   4"a.......t.{.h.
    0090 - 02 a6 f5 f1 79 d9 fc ae-90 83 e8 9d f3 cc cb b1   ....y...........
    00a0 - 81 cb 05 e2 de 5f a6 15-16 9a 81 2d 81 98 17 bd   ....._.....-....
    00b0 - f3 e6 f0 e4 87 19 7a d1-b3 0e 40 2f 83 dd 65 a2   ......z...@/..e.

    Start Time: 1769044439
    Timeout   : 7200 (sec)
    Verify return code: 20 (unable to get local issuer certificate)
    Extended master secret: no
    Max Early Data: 0
---
read R BLOCK
closed

  

 

 

参考文档:https://blog.csdn.net/qq_39965541/article/details/150853159

posted @ 2026-01-14 15:58  苦逼运维  阅读(48)  评论(0)    收藏  举报