Как установить openssl на Ubuntu

Обновлено: 21.11.2024

Целевая аудитория

Чтобы правильно выполнить практические шаги, приведенные в этом руководстве, читатель должен быть пользователем Ubuntu, умеющим работать с приложениями командной строки, используя среду Bourne Again SHell (bash). , а также редактировать файлы конфигурации системы с помощью предпочитаемого текстового редактора. Хотя предварительное знакомство с Server Sockets Layer (SSL) или реализацией OpenSSL, в частности, для этого руководства не требуется, при желании читателю рекомендуется продолжить изучение ресурсов, перечисленных в разделе «Ресурсы» этого руководства, чтобы расширить его/ее понимание этого мощного уровня безопасности.

Об OpenSSL

OpenSSL – это надежная коммерческая реализация инструментов SSL и соответствующей библиотеки общего назначения на основе SSLeay, разработанная Эриком А. Янгом и Тимом Дж. Хадсоном. OpenSSL доступен как эквивалент с открытым исходным кодом для коммерческих реализаций SSL через лицензию в стиле Apache.

О X.509

X.509 — это спецификация цифровых сертификатов, опубликованная Международным союзом электросвязи — Телекоммуникации (ITU-T). Он определяет информацию и атрибуты, необходимые для идентификации человека или компьютерной системы, и используется для безопасного управления и распространения сертификатов с цифровой подписью в защищенных сетях Интернета. OpenSSL чаще всего использует сертификаты X.509.

Практическое использование OpenSSL

Установка набора инструментов OpenSSL

Чтобы установить бинарный набор инструментов OpenSSL, установите следующие пакеты openssl (см. Установка программного обеспечения).

Установка библиотеки OpenSSL

Чтобы установить библиотеку общего назначения OpenSSL, сначала определите применимую версию библиотеки, доступную для вашего компьютера с Ubuntu, с помощью следующей команды, введенной в командной строке терминала:

apt-cache search libssl | grep SSL

Вы должны увидеть вывод команды, аналогичный следующему:

В приведенном выше примере вы, скорее всего, захотите установить текущую библиотеку OpenSSL, которая отображается в выходных данных как libssl0.9.7 (например, sudo apt-get install libssl0.9.7< /tt>. Установите следующие пакеты libssl0.9.7 (см. Установка программного обеспечения). Вам также может потребоваться установить ca-certificates.

Установка библиотеки разработки OpenSSL

Для создания программного обеспечения, для которого требуется библиотека общего назначения OpenSSL, необходимо сначала установить экземпляр разработки библиотеки OpenSSL. Установите следующие пакеты libssl-dev (см. Установка программного обеспечения). Из-за того, что лицензия OpenSSL несовместима с GPL, для связывания библиотеки OpenSSL с программами, на которые распространяется GPL, требуется явное исключение связывания для пакетов, присутствующих в архиве Ubuntu. (Решение технического совета Ubuntu)

Основные команды OpenSSL

В следующем разделе руководства представлены некоторые из наиболее распространенных основных команд и параметры для команд, которые являются частью набора инструментов OpenSSL. Для получения дополнительной информации прочтите различные страницы руководства по системе OpenSSL с помощью команды man и обратитесь к информации, представленной в разделе "Ресурсы" этого руководства.

Определить установленную версию OpenSSL:

Список доступных подкоманд OpenSSL:

Получите дополнительную справочную информацию о подкомандах OpenSSL, используя команду openssl, затем подкоманду и переключатель -h. Например, чтобы получить дополнительную информацию о подкоманде openssl enc:

Список всех доступных алгоритмов шифрования:

шифры openssl -v

Вы можете сравнить скорость своего компьютера с помощью OpenSSL, определив, сколько байтов в секунду может быть обработано для каждого алгоритма, и время, необходимое для циклов подписи/проверки, с помощью следующей команды:

SSL-сертификаты

В следующих разделах этого руководства представлены концепции, связанные с созданием и использованием сертификатов SSL, как самоподписанных, так и сертификатов, подписанных признанным центром сертификации для использования с серверным приложением, поддерживающим SSL, а также использование сертификатов X.509 в клиентских приложениях.

Сертификаты SSL для использования на сервере

Создание и подписание самозаверяющих сертификатов

Самозаверяющие сертификаты имеют большое преимущество в том, что они полностью бесплатны для использования, и их можно создавать, подписывать и использовать по мере необходимости. Самоподписанные сертификаты отлично подходят для использования в закрытых лабораториях или в целях тестирования. Однако одним из недостатков использования самозаверяющих сертификатов является то, что предупреждения обычно выдаются веб-браузером пользователя и другими приложениями при доступе к защищенному SSL серверу, использующему самозаверяющий сертификат. По умолчанию клиентские приложения (например,, Firefox) будут подавлять такие предупреждения для сертификатов, подписанных с использованием только всемирно признанного и доверенного Центра сертификации, но предупреждения также могут быть подавлены путем импорта корневого сертификата сервера в клиентские приложения; соответствующая демонстрация показана далее в этом руководстве. Использование самозаверяющих сертификатов в общедоступной производственной среде не рекомендуется из-за неявных проблем с доверием, возникающих из-за этих предупреждений, а также из-за потенциальной путаницы у пользователей.

ПРИМЕЧАНИЕ. Вы должны получить сертификат, подписанный признанным центром сертификации, чтобы создать коммерческий сайт, например, для ведения «электронной коммерции».

При условии, что вы установили набор инструментов OpenSSL ранее или в соответствии с приведенными выше инструкциями, создание сертификатов SSL X.509 довольно просто. Для самозаверяющих сертификатов необходимо сначала установить центр сертификации (ЦС), выполнив следующие действия:

Создание центра сертификации

Сначала создайте начальную рабочую среду, например, в своем домашнем каталоге, введя следующую команду из командной строки терминала:

Приведенная выше команда поместит вас в только что созданный подкаталог вашего домашнего каталога с именем myCA, и в этом подкаталоге у вас должны быть два дополнительных подкаталога с именами signedcerts и частное.

Затем создайте исходную базу данных сертификатов в подкаталоге ~/myCA с помощью следующей команды в командной строке терминала:

echo '01' > серийный номер && touch index.txt

Теперь создайте исходный файл caconfig.cnf, подходящий для создания сертификатов ЦС. Используя ваш любимый редактор, отредактируйте файл ~/myCA/caconfig.cnf и вставьте в него следующее содержимое:

ВАЖНО. Не забудьте настроить в файле очевидные детали, относящиеся к конкретному сайту, например два экземпляра /home/ / в [ local_ca ] и [ req ]. Также измените commonName, stateOrProvinceName countryName и т. д. в разделе [ root_ca_distinguished_name ], чтобы персонализировать их для своей среды. Для получения дополнительной информации о директивах, содержащихся в этом файле конфигурации, используйте команду man config.

После редактирования файла в соответствии с вашей средой сохраните его как ~/myCA/caconfig.cnf.

Далее вам нужно сгенерировать корневой сертификат и ключ центра сертификации, выполнив несколько команд. Сначала сделайте следующее:

Предыдущая команда задает переменную среды OPENSSL_CONF, которая заставляет инструмент openssl искать файл конфигурации в другом месте (в данном случае ~/myCA/caconfig.cnf).

Теперь сгенерируйте сертификат ЦС и ключ с помощью следующей команды:

Вам будет предложено ввести парольную фразу, и вы увидите вывод, подобный этому:

Не забудьте парольную фразу, использованную в приведенной выше команде! Он понадобится вам каждый раз, когда вы захотите сгенерировать и подписать новый серверный или клиентский сертификат!

Необязательный шаг

Удалите весь текст сертификата, чтобы оставить только раздел -CERTIFICATE- для создания crt

Создание самозаверяющего сертификата сервера

Теперь, когда у вас настроен центр сертификации, вы можете использовать его для подписи самозаверяющих сертификатов. Прежде чем приступить к описанным ниже шагам, вы можете зашифровать закрытый ключ сертификата с помощью парольной фразы. К преимуществам шифрования ключа с помощью парольной фразы относится защита сертификата в случае его кражи.

Сертификат нельзя использовать с приложениями с поддержкой SSL без ввода парольной фразы при каждом запуске приложения с поддержкой SSL. Это условие, хотя и является наиболее безопасным, может представлять проблему: если сервер должен быть запущен в автоматическом режиме, как в случае перезагрузки компьютера, то никто не сможет ввести парольную фразу, и впоследствии сервер не запустится. . Один из способов устранения этого условия связан с компромиссом в отношении безопасности: ключ можно расшифровать, чтобы исключить необходимость ввода парольной фразы; таким образом, приложения с поддержкой SSL будут запускаться автоматически, и вам не потребуется вводить кодовую фразу.

Чтобы создать самозаверяющий сертификат для использования с приложением SSL, выполните следующие действия:

Создайте файл конфигурации сервера, отредактировав ~/myCA/exampleserver.cnf в своем любимом текстовом редакторе. Добавьте этот пример содержания:

Обязательно измените значения в разделе server_distinguished_name, особенно значение commonName. Значение commonName должно соответствовать имени хоста или CNAME для хоста, для которого вы хотите использовать ключ.Если commonName не соответствует предполагаемому имени хоста, то в клиентских приложениях клиентов, пытающихся получить доступ к серверу, появятся ошибки несоответствия хоста/сертификата.

После соответствующего редактирования файла сохраните его как ~/myCA/exampleserver.cnf. Создайте сертификат сервера и ключ с помощью следующих команд:

Предыдущая команда задает переменную среды OPENSSL_CONF, которая заставляет инструмент openssl искать файл конфигурации в другом месте (в данном случае ~/ myCA/exampleserver.cnf).

Теперь сгенерируйте сертификат и ключ:

openssl req -newkey rsa:1024 -keyout tempkey.pem -keyform PEM -out tempreq.pem -outform PEM

Вам будет предложено ввести парольную фразу, и вы увидите вывод, подобный этому:

Не забудьте парольную фразу!

Далее вы можете преобразовать временный закрытый ключ в незашифрованный с помощью следующей команды:

openssl rsa server_key.pem

Вам будет предложено ввести парольную фразу, использованную выше, и вы увидите следующий вывод:

Если вы хотите оставить ключ зашифрованным с помощью парольной фразы, просто переименуйте временный ключ, используя следующую команду, вместо того, чтобы выполнять описанный выше шаг:

mv tempkey.pem server_key.pem

Помните: если вы используете ключ сервера, зашифрованный парольной фразой, парольную фразу необходимо будет вводить каждый раз при запуске серверного приложения, использующего зашифрованный ключ. Это означает, что серверное приложение не запустится, пока кто-то или что-то не введет ключ.

Теперь вам нужно подписать сертификат сервера с помощью ключа Центра сертификации (ЦС), используя следующие команды:

Предыдущая команда изменяет переменную среды OPENSSL_CONF, что заставляет инструмент openssl искать файл конфигурации в другом месте (в данном случае ~/ myCA/caconfig.cnf, чтобы вернуться к конфигурации ЦС).

Затем подпишите сертификат следующим образом:

openssl ca -in tempreq.pem -out server_crt.pem

Вам будет предложено ввести парольную фразу ключа ЦС, созданного при настройке Центра сертификации выше. Введите эту парольную фразу в приглашении, после чего вам будет предложено подтвердить информацию в файле exampleserver.cnf и, наконец, подтвердить подписание сертификата. Вывод должен быть примерно таким:

Удалите временный сертификат и файлы ключей с помощью следующей команды:

rm -f tempkey.pem && rm -f tempreq.pem

Используйте документацию, прилагаемую к серверному приложению, для которого вы хотите использовать сертификат, и ключ, чтобы правильно его использовать. Пример использования см. в разделе «Настройка Apache для поддержки SSL» ниже.

Необязательный шаг для некоторых серверных приложений

Некоторые серверные приложения, такие как приложение почтового сервера Courier IMAP, требуют, чтобы незашифрованный закрытый ключ был добавлен перед сертификатом сервера. Для этого просто введите следующие команды:

Создайте один файл, содержащий сертификат и ключ, с помощью следующей команды:

openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mycert.pem -out mycert.pem

openssl pkcs12 -export -out mycert.pfx -in mycert.pem -name "Сертификат для чего угодно"

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

Создание сертификата для подписи признанным центром сертификации

Для запуска производственного сервера, который будет заниматься коммерческой деятельностью, такой как "электронная коммерция", необходимо создать сертификат и подписать его в признанном центре сертификации (ЦС), таком как VeriSign. Процесс создания запроса на сертификат и получения сертификата, подписанного признанным ЦС, может быть сложным. Перед созданием запроса на сертификат необходимо заполнить все необходимые документы и убедиться, что вся необходимая информация верна.

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

openssl req -new -newkey rsa:1024 -nodes -keyout mykey.pem -out myreq.pem

Если у вас уже есть ключ, который вы хотите использовать, используйте вместо него следующую команду:

требование openssl -new -key mykey.pem -out myreq.pem

Возможно, вы захотите проверить подпись и информацию, содержащуюся в запросе сертификата. Проверьте подпись с помощью этой команды:

openssl req -in myreq.pem -noout -verify -key mykey.pem

и проверьте информацию с помощью этой команды:

openssl req -in myreq.pem -noout -text

Следующие шаги обычно включают вставку содержимого файла запроса сертификата в форму регистрации ЦС и ожидание сертификата. Кроме того, вам следует защитить файл ключа, так как он потребуется для использования сертификата, полученного от ЦС.

Импорт корневого сертификата в такие приложения обеспечивает надежное зашифрованное SSL-подключение к серверу, с которого получен сертификат, без надоедливых сообщений о том, что сертификат является самоподписанным, и т. д.

OpenSSL — это надежный коммерческий полнофункциональный набор инструментов для протоколов Transport Layer Security (TLS) и Secure Sockets Layer (SSL). Это также криптографическая библиотека общего назначения.

OpenSSL используется многими программами, такими как веб-сервер Apache, PHP и многими другими, обеспечивающими поддержку различных криптографических алгоритмов, таких как шифры (AES, Blowfish, DES, IDEA и т. д.) и криптографические хеш-функции (MD5, MD4, SHA). -1, SHA-2 и т. д.)

В этом руководстве мы собираемся установить последнюю версию OpenSSL на Ubuntu 16.04/18.04.

Развертывание облачного сервера
Если вы еще не зарегистрировались в Cloudwafer, вам следует начать с регистрации. Найдите минутку, чтобы создать учетную запись, после чего вы сможете легко развернуть свои собственные облачные серверы.

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

Обновление системных пакетов
Всегда рекомендуется обновлять систему до последних пакетов перед началом какой-либо основной установки. Это делается с помощью следующей команды:

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

Шаг 1. Установите необходимые пакеты для компиляции
Введите команду ниже, чтобы установить необходимые пакеты для компиляции:

Шаг 2: Загрузите OpenSSL
Далее мы собираемся загрузить OpenSSL из источника (получив последнюю версию, которая на момент написания этого руководства является последней стабильной версией серии 1.1.1).< /p>

Далее извлеките загруженный файл с помощью следующей команды:

Далее перейдите в извлеченный каталог.

Шаг 3: Установите OpenSSL
Сейчас мы собираемся установить последнюю версию OpenSSL, которую мы скачали с помощью следующей команды:

Шаг 4. Настройка общих библиотек OpenSSL
Перейдите в каталог /etc/ld.so.conf.d и создайте новый файл конфигурации «openssl-1.1.1c.conf».

Введите следующее:

Не забудьте сохранить перед выходом.

Затем перезагрузите динамическую ссылку, введя следующую команду:

Шаг 5. Настройте двоичный файл OpenSSL
В нашей окончательной конфигурации мы собираемся вставить двоичный файл нашей новой установленной версии OpenSSL (находится в /usr/local/ssl/bin/openssl ), чтобы заменить установленный по умолчанию Бинарный файл openssl (находится в /usr/bin/openssl или /bin/openssl ).

Сначала выполните резервное копирование двоичных файлов.

Далее отредактируйте файл /etc/environment с помощью vim.

Вставьте следующее:

Не забудьте сохранить перед выходом.

Затем перезагрузите среду OpenSSL и проверьте каталог bin PATH, используя приведенные ниже команды:

Теперь мы можем проверить нашу установку последней стабильной версии OpenSSL с помощью следующей команды:

OpenSSL – это библиотека с открытым исходным кодом для защиты ваших веб-сайтов и приложений с использованием протоколов TLS (Transport Layer Security) и SSL (Secure Sockets Layer). Он также используется для шифрования и дешифрования данных. OpenSSL хорошо работает с большинством популярных веб-серверов, включая Apache, NGINX и т. д.и поддерживает популярные алгоритмы шифрования, такие как MD5, SHA-2 и т. д. В этой статье мы рассмотрим, как установить OpenSSL в Ubuntu. По умолчанию он уже установлен в большинстве систем Linux. Но если это не так в вашем случае или вы хотите обновить OpenSSL, вы можете прочитать об установке OpenSSL из исходного кода в вашей системе.

Как установить OpenSSL в Ubuntu

Вот шаги по установке OpenSSL в Ubuntu.

1. Обновить систему Ubuntu

Откройте терминал и выполните следующую команду, чтобы обновить системные пакеты Ubuntu.

2. Проверить версию OpenSSL

Вы можете проверить версию openssl в вашей системе. Если он присутствует в вашей системе, вы увидите номер последней версии, иначе он выдаст ошибку.

3. Установите необходимые компоненты

Установите необходимые компоненты с помощью следующей команды.

4. Скачать SSL

Выполните следующую команду, чтобы загрузить исходный пакет OpenSSL. Мы используем OpenSSL 1.1.1. Вы можете изменить его в соответствии с вашими требованиями.

Извлеките загруженный файл с помощью следующей команды.

Перейдите к извлеченной папке.

5. Установите OpenSSL

Выполните следующую команду, чтобы установить OpenSSL.

6. Настройка общих библиотек OpenSSL

Создайте новый файл конфигурации openssl-1.1.1c.conf для OpenSSL в /etc/ld.so.conf.d/

Добавьте к нему следующую строку.

Сохраните и закройте файл. Перезагрузите его с помощью следующей команды.

7. Настроить двоичный файл OpenSSL

Далее мы собираемся заменить двоичный файл нашей старой версии OpenSSL в /usr/bin/openssl новым, который мы только что установили в /usr/local/ssl/bin/openssl

Сначала мы делаем резервные копии двоичных файлов. Затем скопируйте его с помощью следующей команды.

Открыть переменную PATH среды.

Добавить папку :/usr/local/bin/openssl в переменную PATH. Обратите внимание на двоеточие в начале пути к папке.

Сохраните и закройте файл. Теперь перезагрузите среду PATH с помощью следующей команды.

Теперь, если вы снова проверите версию OpenSSL, будет показана последняя версия, что указывает на то, что Ubuntu выбирает правильный OpenSSL.

Вот и все. В этой статье мы рассмотрели, как установить/обновить OpenSSL в вашей системе Ubuntu/Debian.

OpenSSL — это очень полезная библиотека для создания запросов на подпись сертификата, пар секретный-открытый ключ, установки сертификатов SSL/TLS и многого другого. Всегда рекомендуется устанавливать в вашей системе последнюю версию Open SSL, чтобы избежать уязвимостей и использовать последние доступные обновления безопасности.

Библиотеки OpenSSL необходимы для создания приложений на основе OpenSSL. При попытке сборки с использованием gcc с библиотекой и функцией openssl используется параметр -lssl. Но вы можете получить сообщение об ошибке типа «foo.cpp:21:25: ошибка: openssl/bio.h: нет такого файла или каталога», что означает, что библиотека openssl не может быть найдена или не установлена. В этом руководстве мы узнаем, как установить библиотеки OpenSSL для создания приложений в Ubuntu, Debian, Mint.

Заголовки OpenSSL и ошибки сборки

OpenSSL предоставляет множество функций для обеспечения безопасности. Все они относятся к разным заголовочным файлам C. Ниже мы перечисляем некоторые из самых популярных заголовков библиотек OpenSSL. Если вам нужен один из них, необходимо установить библиотеку OpenSSL для текущей операционной системы.

Если библиотека разработки OpenSSL не установлена, при попытке собрать приложение C с зависимостью от библиотеки OpenSSL вы получите следующие ошибки. Операцию сборки с библиотекой OpenSSL можно запустить с помощью следующей команды gcc.

Установка библиотек и пакетов разработки OpenSSL

Библиотеки и пакеты разработки OpenSSL имеют название «libssl-dev». «libssl-dev» — это имя пакета для Ubuntu, Debian, Mint и связанных с ними дистрибутивов на основе apt. Перед установкой библиотек разработки и пакета OpenSSL мы можем отобразить информацию об этом.

С помощью следующей команды можно установить библиотеки разработки OpenSSL и пакет.

Установите библиотеки и пакет разработки OpenSSL

Имя пакета «libssl» — это имя пакета, а «dev» указывает, что этот пакет является библиотекой разработки.

Если вы используете команду apt-get вместо apt для управления пакетами, вы можете использовать следующую команду для установки библиотек разработки и пакета OpenSSQL.

Установка библиотек разработки OpenSSL из исходного кода

В качестве альтернативы библиотеки разработки OpenSSL можно установить из исходного кода. Сначала исходный код должен быть скомпилирован в двоичный файл, а затем правильно установлен. Преимущество использования исходного кода заключается в том, что мы можем выбрать любую версию, которую захотим. Нет никакой зависимости от конкретной версии, предоставляемой дистрибутивом Linux.Недостатком установки библиотек разработки OpenSSL из исходного кода является то, что это не так просто, как установка с помощью диспетчера пакетов. Для этого есть несколько шагов.

Извлеките сжатый исходный код openssl с помощью команды tar.

Перейдите также к извлеченному каталогу openssl.

Настройте исходный код openssl для операции компиляции.

Скомпилируйте библиотеки openssl и разработки с помощью команды make.

Установите скомпилированные двоичные файлы openssl и библиотеки разработки с помощью команды make install.

Перейдите в каталог установки OpenSSL и выполните команду openssl, чтобы проверить его версию.

Читайте также: