Sysadmin
May 14

Установка OpenSSL в Debian/Ubuntu Linux

Установка OpenSSL на Linux

В некоторых случаях необходимо установить специальную версию OpenSSL без использования пакетного менеджера.

Если после обновления репозиториев и пакетов, входящих в состав репозитория

apt update && apt upgrade

версия OpenSSL не соответствует ожидаемой,

openssl version

то можно установить из исходников.


Подготовка

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

apt install -y build-essential checkinstall zlib1g-dev

Загрузка OpenSSL исходных кодов

Можно скачать с официального сайта OpenSSL необходимую версию в папку /usr/local/src/ и распаковать:

cd /usr/local/src
wget https://www.openssl.org/source/openssl-1.1.1l.tar.gz
tar zxvf openssl-1.1.1l.tar.gz
cd openssl-1.1.1l

Сборка OpenSSL из исходных кодов

Сконфигурируем OpenSSL так, чтобы можно было легко подключить или отключить в дальнейшем и установим все в папку /usr/local/src:

./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared zlib

Компиляция, тестирование и установка:

make
make test
make install

На этапе тестирования отобразятся все поддерживаемые варианты шифрования.

Подключение общих библиотек OpenSSL

Для подключения общих библиотек необходимо создать файл конфигурации в /etc/ld.so.conf.d/, указав внутри путь и выполнить перезагрузку:

echo '/usr/local/ssl/lib' > /etc/ld.so.conf.d/openssl-1.1.1l.conf
ldconfig -v

Замена бинарных исполняемых файлов OpenSSL

Для корректной работы новых библиотек, нужно добавить путь к исполняемым файлам OpenSSL /usr/local/ssl/bin в переменную PATH окружения

vi /etc/environment

например так
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/ssl/bin"
и переименовать предыдущие файлы:

mv /usr/bin/c_rehash /usr/bin/c_rehash.b
mv /usr/bin/openssl /usr/bin/openssl.b

Проверка, что все верно:

source /etc/environment
echo $PATH
which openssl
openssl version

Проверка работы приложений:

curl -v https://ya.ru/