Установка OpenSSL 3.0.7 из исходников на Ubuntu 22.04 и CentOS 7.6
Что мы сделаем
- Установим зависимости
- Скачаем исходники OpenSSL
- Скомпилируем и установим OpenSSL
- Настроим динамические библиотеки
- Обновим и проверим бинарный путь
- Протестируем установку
Шаг 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 перед сборкой.
Шаг 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 проходит без ошибок.


Пояснение флагов:
- –prefix и –openssldir: путь установки библиотек и конфигурации OpenSSL
- shared: создание динамической библиотеки (*.so)
- zlib: включение поддержки сжатия
После успешной сборки установите собранный пакет:
make install
По умолчанию OpenSSL установится в /usr/local/ssl.

Настройка динамических библиотек
Новая библиотека будет находиться в /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.

Обновление бинарного пути 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 как путь к бинарнику.


На 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 установлен из исходников и доступен в системе.
Что делать при ошибках
- make test не проходит: проверьте зависимости (zlib, perl), свободное место, права; почитайте вывод теста и ищите конкретные ошибки.
- ldconfig не загружает библиотеки: убедитесь, что путь указан правильно (/usr/local/ssl/lib или lib64) и нет опечаток в файле конфигурации.
- Системные службы перестали запускаться после смены openssl: возможно, они были скомпилированы с ожиданием системной версии OpenSSL; верните резервную копию бинарника или выполните откат.
Откат и план восстановления
- Верните резервные бинарники:
sudo mv /usr/bin/openssl.bak /usr/bin/openssl
sudo mv /usr/bin/c_rehash.bak /usr/bin/c_rehash- Удалите /etc/ld.so.conf.d/openssl-3.0.7.conf или откатьте её содержимое и выполните:
sudo ldconfig -v- На 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-подключения и сертификаты
- Проверить производительность криптографических операций
Мини-методология развертывания
- Подготовка стенда и CI сборки
- Сборка и тестирование в изолированной среде
- Проверка совместимости и нагрузочное тестирование
- Развертывание с канареечным тестированием
- Мониторинг и откат при критических ошибках
Тестовые сценарии и критерии приёмки
- Команда
openssl version -aдолжна вернуть 3.0.7 - TLS handshake к тестовому серверу проходит успешно
- Службы, зависящие от OpenSSL, стартуют и обрабатывают запросы
Краткий глоссарий
- ldconfig: утилита для настройки кеша динамических библиотек
- shared: флаг сборки динамической библиотеки
- openssldir: директория конфигурации и данных OpenSSL
Совместимость и миграционные замечания
Сборка из исходников даёт последнюю функциональность, но может привести к несовместимости с пакетами, которые ожидают системную версию OpenSSL. Тестируйте приложения и, при необходимости, собирайте их заново против новой версии библиотек.
Пример быстрого решения проблем
- Если приложение падает — сначала верните резервный openssl и ldconfig. Затем исследуйте журнал приложения и зависимости библиотек с помощью ldd.
Заключение
Установка OpenSSL из исходников даёт контроль над версией и флагами сборки, но требует тщательного тестирования и плана отката. Используйте эти инструкции для развертывания в тестовой среде, проверяйте контрольные суммы исходников и обеспечивайте доступность резервных копий системных бинарников.
Дополнительные ресурсы
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента