Гид по технологиям

Установка OpenSSL 3.0.7 из исходников на Ubuntu 22.04 и CentOS 7.6

• 5 min read • DevOps • Обновлено 27 Nov 2025
Установка OpenSSL 3.0.7 из исходников
Установка OpenSSL 3.0.7 из исходников

Что мы сделаем

  1. Установим зависимости
  2. Скачаем исходники OpenSSL
  3. Скомпилируем и установим OpenSSL
  4. Настроим динамические библиотеки
  5. Обновим и проверим бинарный путь
  6. Протестируем установку

Шаг 1 — Установка зависимостей

Перед сборкой OpenSSL нужно установить пакеты для компиляции и библиотеки, которые требуются при сборке. Для Ubuntu используем apt, для CentOS — yum.

На Ubuntu

Обновите индекс пакетов и установите инструменты сборки и заголовки zlib:

sudo apt update
sudo apt install build-essential checkinstall zlib1g-dev -y

Пояснение: build-essential содержит gcc, make и базовые утилиты; zlib1g-dev нужен для поддержки сжатия.

На CentOS

Установите группу Development Tools и дополнительные заголовки:

yum group install 'Development Tools'
yum install perl-core zlib-devel -y

Если у вас CentOS с ограниченным репозиторием, убедитесь, что подключены EPEL/обновлённые репозитории, иначе может не хватать пакетов.

Шаг 2 — Скачивание OpenSSL

В этом руководстве мы используем OpenSSL 3.0.7. Перейдите в каталог исходников и скачайте архив:

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

Распакуйте архив и перейдите в каталог с исходниками:

tar -xf openssl-3.0.7.tar.gz
cd openssl-3.0.7

Скачивание исходников OpenSSL

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

Шаг 3 — Сборка и установка OpenSSL

Перед началом проверьте текущую версию OpenSSL в системе:

openssl version -a

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

Конфигурация, сборка и тесты

Перейдите в каталог с исходниками и выполните конфигурацию для установки в /usr/local/ssl. Параметр shared создаёт разделяемую библиотеку, zlib включает поддержку сжатия.

cd /usr/local/src/openssl-3.0.7
./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared zlib
make
make test

Ожидается длительный процесс компиляции; убедитесь, что make test проходит без ошибок.

Компиляция OpenSSL

Тесты make test пройдены

Пояснение флагов:

  • –prefix и –openssldir: путь установки библиотек и конфигурации OpenSSL
  • shared: создание динамической библиотеки (*.so)
  • zlib: включение поддержки сжатия

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

make install

Установка make install

По умолчанию OpenSSL установится в /usr/local/ssl.

Проверка установки OpenSSL

Настройка динамических библиотек

Новая библиотека будет находиться в /usr/local/ssl/lib или /usr/local/ssl/lib64. Добавим путь в конфигурацию динамического загрузчика ld.so.

cd /etc/ld.so.conf.d/
sudo nano openssl-3.0.7.conf

Вставьте одну строку с путём к библиотеке. На большинстве систем 64-бит путь будет такой:

/usr/local/ssl/lib64

Сохраните файл и выполните:

sudo ldconfig -v

Вы увидите, что библиотеки OpenSSL загружены из /usr/local/ssl/lib64.

ldconfig на Ubuntu

Обновление бинарного пути OpenSSL

Нужно сделать так, чтобы при вызове openssl система использовала бинарник из /usr/local/ssl/bin.

На Ubuntu 22.04

Сделайте резервные копии системных бинарников:

sudo mv /usr/bin/c_rehash /usr/bin/c_rehash.bak
sudo mv /usr/bin/openssl /usr/bin/openssl.bak

Отредактируйте глобальный PATH в /etc/environment и добавьте /usr/local/ssl/bin в конец PATH, чтобы приоритет имел новый бинарник:

sudo nano /etc/environment

Пример строки PATH:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/ssl/bin"

Загрузите изменения и проверьте PATH:

source /etc/environment
echo $PATH
which openssl

Вы должны увидеть /usr/local/ssl/bin/openssl как путь к бинарнику.

Настройка PATH на Ubuntu

Путь к openssl на Ubuntu

На CentOS 7.6

Сделайте резервную копию системного бинарника и создайте скрипт в /etc/profile.d:

sudo mv /bin/openssl /bin/openssl.bak
sudo vim /etc/profile.d/openssl.sh

Вставьте:

# Set OPENSSL_PATH
OPENSSL_PATH="/usr/local/ssl/bin"
export OPENSSL_PATH
PATH=$PATH:$OPENSSL_PATH
export PATH

Сделайте файл исполняемым и загрузите его:

sudo chmod +x /etc/profile.d/openssl.sh
source /etc/profile.d/openssl.sh
echo $PATH
which openssl

Путь к бинарнику должен указывать на /usr/local/ssl/bin.

Шаг 4 — Тестирование

Проверьте итоговую версию OpenSSL:

openssl version -a

Пример успешного вывода показывает новую версию 3.0.7 и соответствующие пути к библиотекам и конфигурациям.

Последняя версия OpenSSL на Ubuntu

Теперь OpenSSL установлен из исходников и доступен в системе.

Что делать при ошибках

  • make test не проходит: проверьте зависимости (zlib, perl), свободное место, права; почитайте вывод теста и ищите конкретные ошибки.
  • ldconfig не загружает библиотеки: убедитесь, что путь указан правильно (/usr/local/ssl/lib или lib64) и нет опечаток в файле конфигурации.
  • Системные службы перестали запускаться после смены openssl: возможно, они были скомпилированы с ожиданием системной версии OpenSSL; верните резервную копию бинарника или выполните откат.

Откат и план восстановления

  1. Верните резервные бинарники:
sudo mv /usr/bin/openssl.bak /usr/bin/openssl
sudo mv /usr/bin/c_rehash.bak /usr/bin/c_rehash
  1. Удалите /etc/ld.so.conf.d/openssl-3.0.7.conf или откатьте её содержимое и выполните:
sudo ldconfig -v
  1. На CentOS удалите /etc/profile.d/openssl.sh или верните её без PATH изменения, затем перезагрузите сеанс.

Откат должен вернуть систему к рабочему состоянию. Всегда тестируйте в стенде до продакшена.

Рекомендации по безопасности

  • Не заменяйте системный openssl без крайней необходимости — лучше добавить новый бинарник в PATH с более высоким приоритетом для выбранных сервисов.
  • Ограничьте права на /usr/local/ssl: только root должен иметь права на запись.
sudo chown -R root:root /usr/local/ssl
sudo chmod -R 755 /usr/local/ssl
  • Проверяйте подписи и sha256 контрольные суммы исходников OpenSSL перед сборкой.

Альтернативные подходы

  • Использовать пакетные репозитории (apt/yum) и backport пакетов для безопасности и простоты обновлений.
  • Использовать менеджеры версий или контейнеры, чтобы изолировать нестандартную сборку OpenSSL от системных библиотек.
  • Использовать update-alternatives для управления несколькими версиями бинарников openssl.

Сценарии, когда установка из исходников не подходит

  • Большие производственные кластеры с множеством зависимых пакетов: риск несовместимости ABI.
  • Если требуется централизованное управление обновлениями: лучше пакетные обновления через систему управления конфигурацией.

Критерии приёмки

  • openssl version -a показывает 3.0.7 и путь /usr/local/ssl
  • which openssl указывает /usr/local/ssl/bin/openssl
  • ldconfig показывает библиотеки в /usr/local/ssl/lib64
  • Проверочные тесты приложений проходят в тестовой среде

Ролевые контрольные списки

Администратор:

  • Сделать бэкап системных бинарников
  • Обеспечить доступ к репозиторию исх. кодов и контрольным суммам
  • Обновить ld.so конфигурацию и выполнить ldconfig

DevOps:

  • Протестировать сборку в CI/CD
  • Настроить deployment ролик с откатом
  • Проверить влияние на сервисы, использующие OpenSSL

QA:

  • Прогнать smoke-тесты на зависимых сервисах
  • Проверить TLS-подключения и сертификаты
  • Проверить производительность криптографических операций

Мини-методология развертывания

  1. Подготовка стенда и CI сборки
  2. Сборка и тестирование в изолированной среде
  3. Проверка совместимости и нагрузочное тестирование
  4. Развертывание с канареечным тестированием
  5. Мониторинг и откат при критических ошибках

Тестовые сценарии и критерии приёмки

  • Команда openssl version -a должна вернуть 3.0.7
  • TLS handshake к тестовому серверу проходит успешно
  • Службы, зависящие от OpenSSL, стартуют и обрабатывают запросы

Краткий глоссарий

  • ldconfig: утилита для настройки кеша динамических библиотек
  • shared: флаг сборки динамической библиотеки
  • openssldir: директория конфигурации и данных OpenSSL

Совместимость и миграционные замечания

Сборка из исходников даёт последнюю функциональность, но может привести к несовместимости с пакетами, которые ожидают системную версию OpenSSL. Тестируйте приложения и, при необходимости, собирайте их заново против новой версии библиотек.

Пример быстрого решения проблем

  • Если приложение падает — сначала верните резервный openssl и ldconfig. Затем исследуйте журнал приложения и зависимости библиотек с помощью ldd.

Заключение

Установка OpenSSL из исходников даёт контроль над версией и флагами сборки, но требует тщательного тестирования и плана отката. Используйте эти инструкции для развертывания в тестовой среде, проверяйте контрольные суммы исходников и обеспечивайте доступность резервных копий системных бинарников.

Дополнительные ресурсы

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро