Как обновить OpenSSL на Linux CentOS

Обновлено Обновлено: Опубликовано Опубликовано:

Используемые термины: Linux, CentOS.

Данная инструкция протестирована на CentOS 6, 7 и 8.

Посмотреть текущую версию

Узнать текущую версию openssl в Linux можно следующей командой:

openssl version

Мы увидим что-то на подобие:

OpenSSL 1.0.2k-fips  26 Jan 2017

* в данном примере используется версия openssl 1.0.2k от 26 января 2017 года.

Из пакетов

Самый простой способ — воспользоваться репозиторием. Однако, в нем может находиться далеко не последняя версия.

Вводим команду:

yum install openssl

* также можно ввести yum update openssl.

Если будет найдено обновление, система предложит обновить пакет — отвечаем Y.

Если обновлений нет или будет установлена не последняя версия, выполняем установку из исходника.

Из исходника

Устанавливаем пакеты, необходимые для сборки пакета:

yum install make gcc

Переходим по ссылке https://www.openssl.org/source/ и находим в описании LTS версию openssl:

LTS версия OpenSSL

* как видим, на момент написания обновления инструкции это была версия 1.1.1.

И копируем ссылку на ее скачивание:

Ссылка за загрузки LTS OpenSSL

На CentOS скачиваем исходник с использованием найденной ссылки:

wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz

И распаковываем его с последующим удалением:

tar -xvf openssl-*.tar.gz && \rm openssl-*.tar.gz

Переходим в папку с распакованным исходником:

cd openssl-*

Конфигурируем его:

./config --prefix=/usr/local --openssldir=/usr/local

Собираем:

make

И устанавливаем:

make install

Резервируем предыдущую версию openssl:

mv /usr/bin/openssl /root/openssl.back

И делаем ссылку на новую:

ln -s /usr/local/bin/openssl /usr/bin/openssl

Снова проверяем версию:

openssl version -a

Система вернет полные сведения об openssl, например:

OpenSSL 1.1.1g  21 Apr 2020 (Library: OpenSSL 1.0.2k-fips  26 Jan 2017)
built on: Sat May 11 01:54:53 2019 UTC
platform: linux-x86_64
options:  bn(64,64) rc4(16x,int) des(int) idea(int) blowfish(ptr) 
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -O3 -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wa,--noexecstack -Wa,--generate-missing-build-notes=yes -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPADLOCK_ASM -DPOLY1305_ASM -DZLIB -DNDEBUG -DPURIFY -DDEVRANDOM="\"/dev/urandom\"" -DSYSTEM_CIPHERS_FILE="/etc/crypto-policies/back-ends/openssl.config"
OPENSSLDIR: "/etc/pki/tls"
ENGINESDIR: "/usr/lib64/engines-1.1"
Seeding source: os-specific 

Обращаем внимание, что у нас установлена новая версия OpenSSL, но по прежнему, используется старая библиотека — Library: OpenSSL 1.0.2k-fips  26 Jan 2017.

Необходимо добавить в ldconfig новый путь. Для это создаем файл:

vi /etc/ld.so.conf.d/openssl.conf

/usr/local/lib64

* если у нас используется система 32-бит, то путь будет /usr/local/lib.

Применяем настройки:

ldconfig -v

Снова проверяем:

openssl version

Мы должны увидеть:

OpenSSL 1.1.1g  21 Apr 2020

Обновление выполнено. 

# UNIX # Linux # CentOS # Безопасность
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет