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

Обновление 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 opensslRedHat/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.
Дополнительные способы и сценарии
- Проверка удалённого сервера TLS
Чтобы узнать, на какой версии TLS/OpenSSL работает удалённый сервер, можно использовать openssl s_client и обратить внимание на метаданные сеанса:
openssl s_client -connect example.com:443Это не покажет внутреннюю версию OpenSSL на сервере, но даст информацию о поддерживаемых протоколах и шифрах.
- Поиск исполняемых файлов в PATH
На некоторых системах может быть несколько бинарников openssl. Посмотреть все пути:
which -a opensslИли в PowerShell:
Get-Command openssl- Если команда отсутствует
- Установите пакет openssl через пакетный менеджер.
- Для Windows используйте сборки от известных поставщиков или установите OpenSSL вручную и добавьте в PATH.
Когда эти методы не подходят
- Если приложение статически линковано с OpenSSL,
openssl versionна системе не покажет версию внутри исполняемого файла; надо анализировать сам бинарник или исходный код. - В контейнерах может быть своя версия OpenSSL; проверьте внутри контейнера.
- При кастомных сборках из исходников метки версии могут отсутствовать.
Чеклист ролей
Для системного администратора
- Выполнить
openssl version -aна целевых хостах. - Проверить пакетный менеджер на наличие обновлений.
- Просканировать контейнеры и виртуальные окружения на предмет собственных библиотек.
Для разработчика
- Включить программную проверку версии в отладочную сборку.
- Убедиться, что CI использует ожидаемую версию OpenSSL.
- При бэкенд-развертываниях фиксировать версию в артефактах сборки.
Мини-методология для аудита OpenSSL
- Сбор информации:
openssl version -a,stringsна библиотеках, проверка package manager. - Сопоставление: сравнить версии в окружениях (dev, staging, prod).
- Проверка совместимости: убедиться, что используемые шифры и протоколы соответствуют требованиям безопасности.
- План обновления: подготовить откат, протестировать на тестовой среде.
Критерии приёмки
- Команда
openssl versionкорректно возвращает строку версии на целевой системе. - Программный вызов в приложении возвращает ожидаемую строку версии.
- Обновление на тестовой системе прошло без регрессий в TLS-соединениях.
Безопасность и рекомендации
- Регулярно проверяйте и обновляйте OpenSSL, особенно если появляются объявления об уязвимостях.
- Тестируйте обновления на тестовом окружении перед развёртыванием в прод.
- Ограничьте доступ к системам обновления и храните резервные копии конфигураций.
Краткое резюме
- Самый быстрый метод:
openssl versionиopenssl version -a. - Для системных пакетов используйте apt, dnf или yum.
- Для встроенных или статически линкованных библиотек анализируйте бинарники или используйте программный вызов из приложения.
Важно
Если вы не уверены, какая версия безопасна для вашей инфраструктуры, проконсультируйтесь с политикой безопасности вашей организации или с официальной документацией OpenSSL.
Похожие материалы
Как использовать Google Messages на Linux
Просмотр Thread‑сети на iPhone — Eve, Controller, Home+6
CSS hover‑эффекты для изображений
Показать Панель управления и Корзину в Проводнике
Как изменить язык в Notion