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

Как проверить версию OpenSSL

4 min read Безопасность Обновлено 14 Dec 2025
Как проверить версию OpenSSL
Как проверить версию OpenSSL

TL;DR

Проверьте версию OpenSSL командой openssl version в терминале. Для подробной информации используйте openssl version -a, проверьте пакет менеджер или библиотеку с помощью strings, а для приложений — программный вызов в коде. Ниже — пошаговые команды, советы по отладке и чеклисты для разработчиков и администраторов.

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

Обновление OpenSSL критично для безопасности системы. Эта статья объясняет простые и продвинутые способы узнать, какая версия OpenSSL установлена, как проверить библиотеки и как программно определить версию в приложении.

Быстрый обзор методов

  • Команда openssl version — самый быстрый способ. Подходит для большинства систем.
  • Проверка через пакетный менеджер показывает, какие версии доступны и установлены.
  • Анализ бинарных библиотек через strings полезен при нескольких установках.
  • Программная проверка в C++ позволяет узнать, какую библиотеку использует приложение.

1. Стандартный способ: openssl version

Откройте терминал или командную строку и выполните:

openssl version

Для расширённой информации используйте:

openssl version -a

Примечание

  • В PowerShell и в классическом cmd команда работает аналогично, если в PATH есть исполняемый файл openssl.
  • Если команда не найдена, OpenSSL может не быть установлена глобально или не добавлена в PATH.

2. Проверка через пакетный менеджер (Linux)

Debian/Ubuntu:

apt list -a openssl

RedHat/CentOS/Fedora:

dnf list --all openssl

Или для старых систем с yum:

yum list installed openssl

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

3. Проверка версии в бинарной библиотеке (Linux)

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

cd /usr/lib/ssl
strings libcrypto.so | grep "^OpenSSL \S\+"

Здесь используется strings для извлечения текстовых констант из бинарника, затем фильтрация по метке OpenSSL. Путь к библиотеке может отличаться, например /usr/lib64/ или внутри каталога приложения.

Важно

  • Если бинарник скомпилирован с оптимизациями или обфускацией, метки могут отсутствовать.
  • Для macOS используйте otool -L и анализируйте ссылки на библиотеку.

4. Программная проверка в C++

Для гарантии, что приложение действительно ссылается на ожидаемую библиотеку, можно получить версию из кода. Пример для C++:

#include 
#include 
#include 

int main() {
    std::cout << SSLeay_version(SSLEAY_VERSION) << std::endl;
    return 0;
}

Скомпилируйте и запустите, указав линковку с OpenSSL. Это выведет строку версии, используемой библиотекой при запуске вашего приложения.

Совет

  • Новые версии OpenSSL имеют альтернативные API для получения версии, проверьте документацию вашей версии OpenSSL.

Дополнительные способы и сценарии

  1. Проверка удалённого сервера TLS

Чтобы узнать, на какой версии TLS/OpenSSL работает удалённый сервер, можно использовать openssl s_client и обратить внимание на метаданные сеанса:

openssl s_client -connect example.com:443

Это не покажет внутреннюю версию OpenSSL на сервере, но даст информацию о поддерживаемых протоколах и шифрах.

  1. Поиск исполняемых файлов в PATH

На некоторых системах может быть несколько бинарников openssl. Посмотреть все пути:

which -a openssl

Или в PowerShell:

Get-Command openssl
  1. Если команда отсутствует
  • Установите пакет openssl через пакетный менеджер.
  • Для Windows используйте сборки от известных поставщиков или установите OpenSSL вручную и добавьте в PATH.

Когда эти методы не подходят

  • Если приложение статически линковано с OpenSSL, openssl version на системе не покажет версию внутри исполняемого файла; надо анализировать сам бинарник или исходный код.
  • В контейнерах может быть своя версия OpenSSL; проверьте внутри контейнера.
  • При кастомных сборках из исходников метки версии могут отсутствовать.

Чеклист ролей

Для системного администратора

  • Выполнить openssl version -a на целевых хостах.
  • Проверить пакетный менеджер на наличие обновлений.
  • Просканировать контейнеры и виртуальные окружения на предмет собственных библиотек.

Для разработчика

  • Включить программную проверку версии в отладочную сборку.
  • Убедиться, что CI использует ожидаемую версию OpenSSL.
  • При бэкенд-развертываниях фиксировать версию в артефактах сборки.

Мини-методология для аудита OpenSSL

  1. Сбор информации: openssl version -a, strings на библиотеках, проверка package manager.
  2. Сопоставление: сравнить версии в окружениях (dev, staging, prod).
  3. Проверка совместимости: убедиться, что используемые шифры и протоколы соответствуют требованиям безопасности.
  4. План обновления: подготовить откат, протестировать на тестовой среде.

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

  • Команда openssl version корректно возвращает строку версии на целевой системе.
  • Программный вызов в приложении возвращает ожидаемую строку версии.
  • Обновление на тестовой системе прошло без регрессий в TLS-соединениях.

Безопасность и рекомендации

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

Краткое резюме

  • Самый быстрый метод: openssl version и openssl version -a.
  • Для системных пакетов используйте apt, dnf или yum.
  • Для встроенных или статически линкованных библиотек анализируйте бинарники или используйте программный вызов из приложения.

Важно

Если вы не уверены, какая версия безопасна для вашей инфраструктуры, проконсультируйтесь с политикой безопасности вашей организации или с официальной документацией OpenSSL.

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

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

Как использовать Google Messages на Linux
Linux

Как использовать Google Messages на Linux

Просмотр Thread‑сети на iPhone — Eve, Controller, Home+6
Умный дом

Просмотр Thread‑сети на iPhone — Eve, Controller, Home+6

CSS hover‑эффекты для изображений
Веб-разработка

CSS hover‑эффекты для изображений

Показать Панель управления и Корзину в Проводнике
Windows

Показать Панель управления и Корзину в Проводнике

Как изменить язык в Notion
Инструкции

Как изменить язык в Notion

Лучшие десктопные клиенты для Facebook-чата
Сообщения

Лучшие десктопные клиенты для Facebook-чата