Обновлено:
Опубликовано: Используемые термины: Linux, CentOS, Ubuntu.
Данная инструкция протестирована на CentOS 6, 7, 8 и Ubuntu.
Узнать установленную версию OpenSSL
Обновление из репозитория
Обновление из исходников
Решение возможных проблем
Узнать текущую версию openssl в Linux можно следующей командой:
openssl version
Мы увидим что-то на подобие:
OpenSSL 1.0.2k-fips 26 Jan 2017
* в данном примере используется версия openssl 1.0.2k от 26 января 2017 года.
Если команда вернула ошибку:
openssl: command not found
... значит пакет openssl не установлен в системе.
Обновить/установить openssl можно из репозитория операционной системы или собрав его из исходника. Мы рассмотрим оба варианта.
Самый простой способ — воспользоваться репозиторием. Однако, в нем может находиться далеко не последняя версия.
В зависимости от типа Linux, наши команды будут немного отличаться.
а) Для DEB-систем (Debian, Ubuntu, Astra Linux):
apt update
apt install openssl
б) Для RPM-систем (Rocky Linux, CentOS):
yum makecache
yum install openssl
* также можно ввести yum update openssl.
Если будет найдено обновление, система предложит обновить пакет — отвечаем Y.
Если обновлений нет или будет установлена не последняя версия, выполняем установку из исходника.
Устанавливаем пакеты, необходимые для сборки пакета. Команда зависит от дистрибутива Linux.
а) Для DEB-систем:
apt install make gcc wget tar perl
б) Для RPM-систем:
yum install make gcc wget tar perl
Переходим по ссылке https://www.openssl.org/source/ и находим в описании LTS версию openssl:

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

На CentOS скачиваем исходник с использованием найденной ссылки:
wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz
И распаковываем его с последующим удалением:
tar -xvf openssl-*.tar.gz && rm -f openssl-*.tar.gz
Переходим в папку с распакованным исходником:
cd openssl-*
Конфигурируем его:
./config --prefix=/usr --openssldir=/usr
Собираем:
make
И устанавливаем:
make install
Проверяем версию:
openssl version -a
Система вернет полные сведения об openssl, например:
OpenSSL 1.1.1t 7 Feb 2023
built on: Mon Feb 27 11:17:07 2023 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 -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 -DAESNI_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DNDEBUG
OPENSSLDIR: "/usr"
ENGINESDIR: "/usr/lib/engines-1.1"
Seeding source: os-specific
Обновление выполнено.
При запуске команды openssl, система возвращает ошибку:
openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
Причина: openssl не может найти нужную ей библиотеку (libssl.so), так как она распологается в нестандартном для операционной системы месте.
Решение: необходимо добавить в ldconfig правильный путь до libssl.so. Сначала найдем библиотеку, которой не хватает openssl:
find / -name libssl.so.1.1
В моем случае ответ был:
/usr/lib64/libssl.so.1.1
Значит, путь до библиотеки /usr/lib64 — его и добавляем в ldconfig. Для это создаем файл:
vi /etc/ld.so.conf.d/openssl.conf
/usr/lib64
Применяем настройки:
ldconfig
Снова проверяем:
openssl version
создаем файл:
nano /etc/ld.so.conf.d/openssl.conf
В файле:
/usr/lib64