---
title: 升级OpenSSL
description: "为了避免在安装过程中出现依赖关系问题和提高系统的安全性，需要将OpenSSL升级至1.1.1a或者以上版本。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengwebs/ecosystemEnable/Nginx/kunpengnginx_02_0019.html
sourcePath: /source/zh/kunpengwebs/ecosystemEnable/Nginx/kunpengnginx_02_0019.html
indexId: 3e43d8dadf2bcd6b283e33a723370976c93505b7a1d5720cb5ddcbd73bf0c86070
---
# 升级OpenSSL

为了避免在安装过程中出现依赖关系问题和提高系统的安全性，需要将OpenSSL升级至1.1.1a或者以上版本。

- CentOS 8.1、openEuler 20.03与openEuler 22.03自带的OpenSSL版本均高于1.1.1a，故不需要升级OpenSSL，请跳过该章节。

- CentOS 7.6自带的OpenSSL版本为1.0.2k-fips，需要升级OpenSSL。

查看OpenSSL版本。

```
openssl version
```

下文以在CentOS 7.6下升级OpenSSL到1.1.1a版本为例进行说明。- 如果安装Nginx的方式为通过源码编译安装，请选择  升级OpenSSL（通过源码编译安装Nginx）
。
- 如果安装Nginx的方式为通过镜像站RPM包安装，请选择  升级OpenSSL（通过镜像站RPM包安装Nginx）
。


#### 升级OpenSSL（通过源码编译安装Nginx）

1. 获取OpenSSL源码。

  a. 在本地浏览器下载    OpenSSL源码包(https://codeload.github.com/openssl/openssl/tar.gz/OpenSSL_1_1_1a)
。
  b. 将源码包上传到服务器“/home”目录下。
    若服务器可以访问网络，则可以直接在服务器上使用wget命令下载源码。 进入“/home”目录，下载源码包。 1 2 cd /home wget https://codeload.github.com/openssl/openssl/tar.gz/OpenSSL_1_1_1a --no-check-certificate 将下载的源码包重命名。 用本地浏览器和wget命令下载的OpenSSL源码包名称不一样，本文使用的是本地浏览器下载源码包导入服务器的方法，故用wget命令下载源码包后需要重命名。 1 mv OpenSSL_1_1_1a openssl-OpenSSL_1_1_1a.tar.gz

2. 解压OpenSSL源码包。
  1 tar -xvf openssl-OpenSSL_1_1_1a.tar.gz

3. 进入“openssl-OpenSSL_1_1_1a”目录，并查看该目录下的文件。
  1 2 cd openssl-OpenSSL_1_1_1a/ ls

4. 配置OpenSSL。
  1 ./config

5. 编译安装。
  1 make -j60 && make -j60 install

  “-j 60”参数充分利用多核CPU优势，加快编译速度，参数“-j”后数字为CPU核数，CPU的核数可以通过lscpu查看。

6. 配置ld.so.conf文件。
  1 2 echo "/usr/local/lib/" >> /etc/ld.so.conf ldconfig -v

7. 生效OpenSSL。

  a. 将OpenSSL添加到环境变量中。
    1 echo export PATH=/usr/local/bin:\$PATH >> /etc/profile

  b. 使环境变量生效。
    1 source /etc/profile

8. 查看OpenSSL版本。

  - 方法一：
    1 2 hash -r openssl version

  - 方法二：
    1 2 3 hash -r which openssl /usr/local/bin/openssl version

9. 查看OpenSSL安装目录。
  1 openssl version -a

  回显中，“OPENSSLDIR”后面的路径为OpenSSL的安装目录。

10. 可选：如果需要卸载当前方式安装的OpenSSL，则使用以下任一方法中的命令即可。

  - 方法一：
    1 2 3 4 5 cd /home/openssl-OpenSSL_1_1_1a make uninstall hash -r openssl version openssl version -a

  - 方法二：
    1 2 3 4 5 6 7 openssl version -a rm -rf /usr/local/ssl rm -rf /usr/local/lib/engines-1.1 rm -rf /usr/local/bin/openssl hash -r openssl version openssl version -a


#### 升级OpenSSL（通过镜像站RPM包安装Nginx）

1. 获取OpenSSL的RPM包。

  a. 在本地浏览器下载RPM包。

    - openssl-libs-1.1.1a-3.el7.aarch64.rpm(https://mirrors.huaweicloud.com/kunpeng/yum/el/7/aarch64/Packages/web/openssl-libs-1.1.1a-3.el7.aarch64.rpm)
    - openssl-1.1.1a-3.el7.aarch64.rpm(https://mirrors.huaweicloud.com/kunpeng/yum/el/7/aarch64/Packages/web/openssl-1.1.1a-3.el7.aarch64.rpm)
    - openssl-devel-1.1.1a-3.el7.aarch64.rpm(https://mirrors.huaweicloud.com/kunpeng/yum/el/7/aarch64/Packages/web/openssl-devel-1.1.1a-3.el7.aarch64.rpm)
  b. 将下载的RPM包复制至服务器“/home”目录。
    若服务器可以访问网络，则可以直接在服务器上使用wget命令下载RPM包。 1 2 3 4 cd /home wget https://mirrors.huaweicloud.com/kunpeng/yum/el/7/aarch64/Packages/web/openssl-libs-1.1.1a-3.el7.aarch64.rpm --no-check-certificate wget https://mirrors.huaweicloud.com/kunpeng/yum/el/7/aarch64/Packages/web/openssl-1.1.1a-3.el7.aarch64.rpm --no-check-certificate wget https://mirrors.huaweicloud.com/kunpeng/yum/el/7/aarch64/Packages/web/openssl-devel-1.1.1a-3.el7.aarch64.rpm --no-check-certificate

2. 安装OpenSSL。
  1 rpm -ivh openssl-libs-1.1.1a-3.el7.aarch64.rpm openssl-1.1.1a-3.el7.aarch64.rpm openssl-devel-1.1.1a-3.el7.aarch64.rpm --force --nodeps

3. 配置ld.so.conf文件。
  1 2 echo "/usr/local/lib/" >> /etc/ld.so.conf ldconfig -v

4. 使OpenSSL生效。
  1 2 echo export PATH=/usr/local/bin:\$PATH >> /etc/profile source /etc/profile

5. 查看OpenSSL版本。

  - 方法一：
    1 2 hash -r openssl version

  - 方法二：
    1 2 3 hash -r which openssl /usr/local/bin/openssl version

6. 查看OpenSSL安装目录。
  1 openssl version -a

  回显中，“OPENSSLDIR”后面的路径为OpenSSL的安装目录。

7. 可选：如果需要卸载当前方式安装的OpenSSL，使用以下命令即可。
  1 2 3 4 5 6 rpm -qa | grep openssl rpm -e --nodeps openssl-devel-1.1.1a openssl-1.1.1a openssl-libs-1.1.1a rpm -qa | grep openssl hash -r openssl version openssl version -a
