Введение
OpenSSL это набор инструментов с открытым исходным кодом, реализующий протоколы Secure Sockets Layer (SSL v2/v3) и Transport Layer Security (TLS v1), а также полнофункциональную библиотеку криптографии общего назначения. Он используется для обеспечения криптографических функций и возможностей безопасных коммуникаций во многих программных пакетах и приложениях.
В этом подробном руководстве мы рассмотрим процесс установки OpenSSL на Debian и Ubuntu Linux 18.04 / 20.04 / 22.04 шаг за шагом. Мы рассмотрим:
- Понимание OpenSSL и его применения
- Проверка того, установлен ли уже OpenSSL
- Выбор правильной версии OpenSSL для установки
- Использование apt для установки OpenSSL
- Загрузка и компиляция OpenSSL из исходных текстов
- Проверка установки OpenSSL
- Советы по устранению неполадок
Мы также предоставим много справочной информации, объяснений и примеров, чтобы помочь вам полностью понять каждый шаг процесса. Независимо от того, являетесь ли вы начинающим или опытным пользователем Linux, это руководство призвано предоставить все необходимое для правильной установки OpenSSL в вашей системе Ubuntu.
Предварительные условия
Прежде чем приступить к установке OpenSSL, давайте рассмотрим некоторые предварительные условия:
- Операционная система Ubuntu Linux (любая современная версия должна работать)
- Административные привилегии — вам нужно будет использовать
sudo
для некоторых шагов установки - Базовые знания командной строки для выполнения команд терминала
- Инструменты компилятора GNU, такие как gcc и make (для компиляции из исходного кода)
На этом все — давайте перейдем к пониманию того, что такое OpenSSL и почему он полезен.
Что такое OpenSSL?
OpenSSL — это надежный и универсальный набор инструментов для криптографии, который реализует протоколы Transport Layer Security (TLS) и Secure Sockets Layer (SSL) для обеспечения зашифрованной связи между приложениями. Он также включает в себя криптографическую библиотеку общего назначения, которая предоставляет различные криптографические функции, такие как хеширование, цифровые подписи, шифрование/дешифрование и многое другое.
Некоторые конкретные области применения OpenSSL включают:
- Обеспечение шифрования для интернет-сервисов и соединений — HTTPS-сайты, SSH, VPN, электронная почта и т.д. полагаются на TLS/SSL, который реализуется с помощью OpenSSL.
- Шифрование конфиденциальных данных — OpenSSL может шифровать файлы, потоки данных и многое другое с помощью таких механизмов, как симметричные шифры.
- Безопасное хэширование паролей — Рекомендуется хранить пароли в виде хэшей, а не в виде открытого текста, и OpenSSL предоставляет такие функции, как SHA256, для создания безопасных хэшей паролей.
- Генерация пар закрытых и открытых ключей и сертификатов — OpenSSL используется для создания инфраструктуры открытых ключей (PKI) для реализации SSL/TLS.
- Криптографическая подпись сообщений для защиты от несанкционированного доступа и проверки личности.
Как видите, OpenSSL является важнейшей основой для шифрованных коммуникаций и служб интернет-безопасности. Далее давайте проверим, установлен ли он у нас.
Проверьте, установлен ли уже OpenSSL
Перед установкой OpenSSL стоит проверить, не присутствует ли он уже в вашей системе Ubuntu после предыдущей установки.
Чтобы проверить, установлен ли OpenSSL, используйте эту команду:
$ openssl version
Если OpenSSL установлен, он выведет информацию о версии, например:
OpenSSL 1.1.1f 31 Mar 2020
Это означает, что OpenSSL уже доступен в вашей системе и, скорее всего, вам не нужно устанавливать его снова. Убедитесь, что установленная версия все еще поддерживается и является актуальной.
Если openssl
команда не найдена, вы увидите ошибку типа:
bash: openssl: command not found
Это означает, что OpenSSL еще не установлен, поэтому нам нужно приступить к его установке.
Выбор правильной версии OpenSSL
Существует несколько различных версий OpenSSL, которые можно установить на Ubuntu. Основные из них, которые вы, скорее всего, выберете, это:
- OpenSSL 1.1.x — Современная ветка Long Term Support, обеспечивающая регулярные обновления и поддержку до 2023 года. Это рекомендуемая ветка для большинства пользователей.
- OpenSSL 1.0.x — Старая ветка 1.0.x, которая находится на техническом обслуживании до 2023 года, но не получает новых функций. Используйте только в том случае, если у вас есть проблемы с совместимостью старых приложений с 1.1.x.
- OpenSSL 3.0 — Новейшая ветвь версии 3.x, выпущенная в 2021 году. Предоставляет новые возможности, но менее стабильна и менее поддерживаема. Используйте только в том случае, если вам нужны самые современные функции.
В большинстве случаев вам следует установить OpenSSL 1.1.x для получения последних долгосрочных стабильных функций и обновлений безопасности. Используйте более старые или новые ветки только в том случае, если у вас есть особые потребности.
На Ubuntu openssl
будет установлена последняя версия 1.1.x, которая рекомендуется для большинства пользователей. При компиляции из исходного кода выберите последний снимок исходного кода 1.1.x.
Теперь давайте рассмотрим процесс установки с помощью apt и из исходного кода.
Установка OpenSSL с помощью Apt
Самый простой способ установить OpenSSL на Ubuntu — это использовать apt
менеджера пакетов. Вот шаги:
- Обновите репозитории apt, чтобы получить последние списки пакетов:
$ sudo apt update
- Установите
openssl
пакет:
$ sudo apt install openssl
- Проверьте установленную версию:
$ openssl version
Это покажет новую установленную версию, скорее всего 1.1.x
Вот и все! Apt автоматически загрузит и установит последнюю версию OpenSSL из официальных репозиториев Ubuntu.
В зависимости от вашей базовой версии Ubuntu, вы можете получить более старые версии 1.0.x, используя apt. Но этот метод отлично подходит для быстрой установки или обновления до последней поддерживаемой версии OpenSSL.
Далее мы рассмотрим компиляцию и установку из исходных текстов для большего контроля.
Загрузка и компиляция OpenSSL из исходных текстов
В некоторых случаях вы можете захотеть загрузить и скомпилировать OpenSSL из исходных текстов, а не использовать apt:
- Установка последней версии OpenSSL до обновления пакетов дистрибутива
- Сборка с пользовательскими опциями и настройками времени компиляции
- Связывание со статическими библиотеками libcrypto/libssl, а не с разделяемыми объектами
Ниже приведены подробные шаги по сборке и установке OpenSSL из исходного кода:
- Сначала установите необходимые зависимости:
$ sudo apt install build-essential wget
- Перейдите в раздел Страница загрузки OpenSSL и найдите последний tarball с исходным кодом 1.1.x. Скопируйте URL-адрес в файл
.tar.gz
файл. Например https://www.openssl.org/source/openssl-1.1.1w.tar.gz - Используйте
wget
чтобы загрузить tarball с исходным кодом (при необходимости скорректируйте версию):
$ wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz
- Убедитесь, что контрольная сумма загрузки совпадает с суммой на сайте. Это гарантирует, что загрузка не повреждена:
$ sha256sum openssl-1.1.1w.tar.gz
- Распакуйте исходный архив:
$ tar xvzf openssl-1.1.1w.tar.gz
- Перейдите в каталог с извлеченным исходным кодом:
$ cd openssl-1.1.1w
- Настройте параметры сборки. В качестве базового примера:
$ ./config
- Для получения информации о пользовательских настройках см.
./config --help
. Важные опции включают:--prefix
установить место установки (по умолчанию /usr/local)--openssldir
задать расположение каталога SSL- статические или разделяемые библиотеки
- Соберите пакет:
$ make
- Запустите тесты (необязательно, но рекомендуется):
$ make test
- Установите OpenSSL:
$ sudo make install
По умолчанию он будет установлен в /usr/local/bin, /usr/local/lib и т. д. Используйте --prefix
для настройки.
- Убедитесь, что папка установки содержит библиотеки и двоичные файлы openssl.
Здесь рассмотрен основной процесс компиляции и установки OpenSSL из исходного кода. Вы также можете ознакомиться с официальным README для получения более подробной информации.
Далее проверим, правильно ли установлен OpenSSL.
Проверка установки OpenSSL
После установки OpenSSL с помощью apt или компиляции из исходного кода проверьте, все ли работает правильно:
- Запустите
openssl version
и проверьте, что в результатах отображается ожидаемая версия - Попробуйте выполнить такие обычные команды, как:
openssl genrsa
— сгенерировать закрытый ключ RSAopenssl req
— генерировать запрос на подписание сертификатаopenssl x509
— проверка/создание сертификатовopenssl pkey
— изучать файлы открытых или закрытых ключейopenssl enc
— шифрование/дешифрование симметричных шифров
- Найдите библиотеки и двоичные файлы openssl в предполагаемых местах установки:
/usr/lib/x86_64-linux-gnu/
— общие библиотеки/usr/local/lib
— статические библиотеки, если они собраны из исходного текста/usr/bin
или/usr/local/bin
— исполняемые файлы
- При компоновке с разделяемыми библиотеками убедитесь, что ваш $LD_LIBRARY_PATH включает каталог с библиотеками OpenSSL.
- Попробуйте использовать
openssl
команды в тестовых приложениях, чтобы убедиться, что криптография и функции SSL/TLS работают так, как ожидается.
Если основные команды работают, а библиотеки/бины находятся в нужных местах установки, ваша установка OpenSSL должна быть готова!
Устранение проблем с установкой OpenSSL
Здесь описаны некоторые распространенные проблемы и способы их устранения при установке OpenSSL:
Не найдены общие библиотеки
Если приложения жалуются на отсутствие libssl
/libcrypto
общие библиотеки, либо обновите $LD_LIBRARY_PATH, чтобы он содержал папку OpenSSL lib, либо убедитесь, что вы установили -devel
пакет apt, содержащий разделяемые объекты .so. Или пересоберите из исходных текстов без --static
опции.
Ошибки компилятора при сборке из исходного текста
Убедитесь, что у вас установлены необходимые инструменты сборки, такие как gcc и make. Дважды проверьте все пользовательские параметры конфигурации, которые могут вызывать проблемы.
Ошибки «Команда не найдена
Если после установки команда openssl недоступна, убедитесь, что /usr/local/bin или настроенная установка --prefix
в переменной окружения $PATH.
SSL-приложения не могут найти файлы сертификатов/ключей
Обновите OPENSSL_CONF
Системная переменная или конфигурация приложения должны указывать на правильное расположение каталога конфигурации OpenSSL, обычно /usr/lib/ssl или /etc/ssl.
Приложению не удается выполнить рукопожатие протокола или шифрование
Ваше приложение может быть связано с версией OpenSSL, отличной от ожидаемой. Дважды проверьте связи библиотек и используемые версии.
Предупреждения о небезопасной конфигурации по умолчанию
Отредактируйте файл openssl.cnf, чтобы обновить настройки по умолчанию в соответствии с рекомендациями. Или предоставьте конфигурацию приложения для переопределения.
Убедитесь, что вы полностью удалили/удалили старые версии OpenSSL, чтобы избежать конфликтов или путаницы.
В большинстве случаев проблемы с установкой можно устранить, дважды проверив расположение библиотек, бинов и файлов конфигурации. За дополнительными советами по устранению неполадок обратитесь к официальной документации OpenSSL.
Заключение
На этом мы завершаем это полное руководство по установке OpenSSL на системы Ubuntu! Мы рассмотрели установку с помощью менеджера пакетов apt, а также сборку и компиляцию из последних версий исходных текстов. Теперь вы должны понимать, как работает OpenSSL и какие криптографические функции он предоставляет.
Подводя итог, можно сказать, что теперь вы должны уметь:
- Устанавливать последние версии OpenSSL на Ubuntu
- Сборка OpenSSL из исходных текстов для пользовательских конфигураций
- Убедитесь, что OpenSSL установлен и работает должным образом
- Выявление и устранение любых проблем с установкой
- Поймите основы OpenSSL и почему он важен для безопасности
OpenSSL обеспечивает работу бесчисленных систем безопасности и криптографических приложений, поэтому он является необходимым инструментом для любого пользователя Linux и Ubuntu. Я надеюсь, что это руководство дало вам все необходимые знания для установки и использования его в ваших проектах и нуждах. Сообщите нам, если у вас возникнут другие вопросы.