как узнать версию openssl

Как обновить OpenSSL на Linux CentOS

Данная инструкция протестирована на CentOS 6, 7 и 8.

Посмотреть текущую версию

Узнать текущую версию openssl в Linux можно следующей командой:

Мы увидим что-то на подобие:

OpenSSL 1.0.2k-fips 26 Jan 2017

* в данном примере используется версия openssl 1.0.2k от 26 января 2017 года.

Из пакетов

Самый простой способ — воспользоваться репозиторием. Однако, в нем может находиться далеко не последняя версия.

yum install openssl

* также можно ввести yum update openssl.

Если будет найдено обновление, система предложит обновить пакет — отвечаем Y.

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

Из исходника

Устанавливаем пакеты, необходимые для сборки пакета:

yum install make gcc

Переходим по ссылке https://www.openssl.org/source/ и находим в описании LTS версию openssl:

как узнать версию openssl. openssl update centos 01. как узнать версию openssl фото. как узнать версию openssl-openssl update centos 01. картинка как узнать версию openssl. картинка openssl update centos 01.

* как видим, на момент написания обновления инструкции это была версия 1.1.1.

И копируем ссылку на ее скачивание:

как узнать версию openssl. openssl update centos 02. как узнать версию openssl фото. как узнать версию openssl-openssl update centos 02. картинка как узнать версию openssl. картинка openssl update centos 02.

На CentOS скачиваем исходник с использованием найденной ссылки:

И распаковываем его с последующим удалением:

Переходим в папку с распакованным исходником:

Резервируем предыдущую версию openssl:

mv /usr/bin/openssl /root/openssl.back

И делаем ссылку на новую:

Снова проверяем версию:

Система вернет либо ошибку, например:

openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory

. либо полные сведения об openssl, например:

Обратите внимание, что у нас установлена новая версия OpenSSL, но по прежнему, используется старая библиотека — Library: OpenSSL 1.0.2k-fips 26 Jan 2017.

Необходимо добавить в ldconfig новый путь. Для это создаем файл:

* если у нас используется система 32-бит, то путь будет /usr/local/lib.

Источник

как узнать версию openssl. 43159 631744. как узнать версию openssl фото. как узнать версию openssl-43159 631744. картинка как узнать версию openssl. картинка 43159 631744.

Одним из самых популярных инструментов для создания и управления SSL-сертификатами является библиотека OpenSSL. В этой статье я расскажу о часто используемых командах OpenSSL.

Некоторые аббревиатуры, относящиеся к сертификатам:

1. Создание нового секретного ключа и запрос на получение сертификата

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

Команда генерирует самозаверенный сертификат и файл 2048-битного RSA-ключа. Я также включил в команду хеш-функцию sha256, поскольку она считается наиболее безопасной.

Совет: По умолчанию команда генерирует самозаверенный сертификат, действительный только один месяц. Для увеличения этого срока переопределите параметра — days.

Пример: для получения сертификата, действительного два года.

3. Верификация CSR-файла

Верификация необходима, чтобы отправленный в регистрационный центр CSR-файл содержал всю необходимую информацию.

4. Создание секретного RSA-ключа

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

5. Удаление пароля-фразы из ключа

Если вы используете составной пароль (фразу) в файле ключа и работаете на Apache, то при каждом запуске нужно вводить секретную фразу. Если вас это раздражает, то можно использовать приведенную выше команду, чтобы удалить пароль-фразу из существующего ключа.

6. Верификация секретного ключа

Если вы сомневаетесь в файле ключа, то можете использовать данную команду.

7. Верификация файла сертификата

Если хотите проверить данные сертификата, такие как CN, OU и т.д., используйте приведенную выше команду, которая предоставит данные сертификата.

8. Верификация центра сертификации

Для проверки центра сертификации можно использовать приведенную выше команду.

9. Проверка хеш-значения сертификата

10. Преобразование формата DER в PEM

11. Преобразование формата PEM в DER

12. Преобразование сертификата и секретного ключа в формат PKCS#12

Если необходимо использовать сертификат с Java-приложением, принимающим только формат PKCS#12, примените приведенную выше команду. Она генерирует один pfx файл, содержащий сертификат и ключ.

13. Создание CSR с использованием существующего секретного ключа

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

14. Проверка содержимого сертификата в формате PKCS12

PKCS12 является двоичным форматом, поэтому вы не сможете просмотреть его содержимое в текстовом редакторе. Для просмотра файла в формате PKCS12 используйте приведенную выше команду.

15. Преобразование формата PKCS12 в PEM-сертификат

16. Проверка SSL-сертификата определенного URL-адреса

Я часто использую эту команду для проверки SSL-сертификата URL-адреса. Это удобно для проверки данных протокола, шифрования и сертификата.

17. Определение версии OpenSSL

18. Проверка даты истечения срока действия PEM-файла

Команда выведет дату в формате notBefore и notAfter. notAfter — это та дата, которая нужна, чтобы определить, истек ли срок действия сертификата или он еще действителен.

19. Проверка срока действия SSL-сертификата для URL-адреса

Команда позволяет контролировать дату истечения срока действия SSL- сертификата удаленно или для конкретного URL-адреса.

20. Проверка, принимается ли на URL-адресеSSL V2 или V

Чтобы проверить SSL V2:

Чтобы проверить SSL V3:

Чтобы проверить TLS 1.0:

Чтобы проверить TLS 1.1:

Чтобы проверить TLS 1.2:

Если необходимо проверить, включен ли SSL V2 / V3 или нет, используйте приведенную выше команду. Если он включен, то вы получите сообщение «CONNECTED», в противном случае –сообщение «handshake failure».

21. Проверка того, принимается ли конкретный шифр на URL-адресе

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

Для этого необходимо задать шифр и URL-адрес. Если шифр будет принят, вы получите сообщение «CONNECTED», иначе – сообщение «handshake failure».

Надеюсь, что приведенные выше команды помогли вам узнать больше об использовании OpenSSL для управления SSL-сертификатами.

Дайте знать, что вы думаете по данной теме материала в комментариях. За комментарии, отклики, подписки, лайки, дизлайки огромное вам спасибо!

Источник

Heartbleed: как надежно и портативно проверить версию OpenSSL?

Я смотрел надежный и портативный способ проверить версию OpenSSL на GNU /Linux и других системах, поэтому пользователи могут легко обнаружить, должны ли они обновлять SSL из-за ошибки Heartbleed.

Я думал, что это будет легко, но я быстро столкнулся с проблемой на Ubuntu 12.04 LTS с последним OpenSSL 1.0.1g:

Я ожидал увидеть полную версию, но вместо этого получил следующее:

К моему неприятному удивлению, письмо версии не показано. Нет, нет, нет, просто «1.0.1», и все. Указанные даты также не помогают обнаружить (не) уязвимую версию.

Отличие между 1.0.1 (a-f) и 1.0.1g имеет решающее значение.

Другие также сообщают об этом. Несколько примеров:

Некоторые (специфические для дистрибутива) предложения, вкатывающиеся в:

Проверка наличия еще старой версии OpenSSL:

8 ответов

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

Ubuntu не является единственным основным дистрибутивом в привычке к обратному обновлению в OpenSSL (или других пакетах), чем полагаться на обновленные обновления и нумерацию версий, которые все распознают. В случае OpenSSL, где номера версий букв представляют собой только исправления ошибок и обновления безопасности, это кажется почти непонятным, но мне сообщили, что это может быть из-за FIPS-валидированный плагин для крупных дистрибутивов Linux, упакованных в OpenSSL. Из-за требований, связанных с повторной проверкой, которые вызывают из-за каких-либо изменений, даже изменения, которые подключают дыры в безопасности, заблокированы версией.

Если вы хотите что-то по-настоящему кросс-платформенное, проверить на наличие самой уязвимости, а не полагаться на номера версий.

Многие поставщики, которые объединяют продукты с открытым исходным кодом, такие как OpenSSL и OpenSSH, будут выборочно модифицировать срочные исправления для более старой версии кода, чтобы поддерживать стабильность и предсказуемость API. Это особенно справедливо для «долгосрочных выпусков» и платформ устройств.

Но поставщики, которые делают это молча (без добавления собственного суффикса строки версии), запускают риск запуска ложных срабатываний в сканерах уязвимостей (и запутывают пользователей). Чтобы сделать это прозрачным и поддающимся проверке, некоторые поставщики присоединяют свои собственные строки к основной версии пакета. И Debian (OpenSSL), и FreeBSD (в OpenSSH, через директиву VersionAddendum sshd_config) иногда делают это.

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

Таким образом, это может выглядеть так:

С такими вещами в игре вам лучше, если вы не доверяете номер версии.

Только для Ubuntu 12.04 вы можете узнать, были ли вы обновлены, если все из приведенных ниже истинны:

Спасибо @danny за дополнительную информацию.

например. на Gentoo до появления

приведенная выше команда приводит к

%20%D0%A1%D1%83%D1%89%D0%B5%D1%81%D1%82%D0%B2%D1%83%D0%B5%D1%82%20 metasploit скрипт, доступный для использования.

После подключения типа B и вы увидите на уязвимом узле, и вы не будете отключены:

Вы получите ответ сердечного ритма, похожий на этот.

На исправленном хосте вы увидите ответ, подобный ниже, и вы будете отключены:

Источник

OpenSSL

Материал из Xgu.ru

OpenSSL — универсальный криптографический инструмент, построенный вокруг протоколов SSL/TLS и сертификатов X.509.

Помимо того, что этот инструмент позволяет работать с соединениями SSL/TLS, сертификатами X.509, он может делать множество других полезных вещей: шифровать и расшифровывать файлы, создавать и проверять цифровые подписи, проверять числа на простоту, тестировать производительность компьютера и другое.

Содержание

Вопросы и ответы

Введение

Как определить какую версию OpenSSL я использую?

Использовать опцию version:

Расширенная информация с опцией -a:

Как получить список доступных команд?

Вызвать с неправильным ключом (например, help или -h).

Аналогично с подкомандами:

Как посмотреть список доступных шифров?

Использовать команду ciphers:

Измерение производительности

Как измерить производительность системы с помощью openssl?

Пример для 2.16GHz Intel Core 2.

Каждый тест можно вызывать отдельно:

Как измерить производительность сетевого соединения?

Помимо этого простейшего измерения у подкоманды s_time есть множество других возможностей:

Сэмулировать web-сервер с помощью openssl s_server:

Сертификаты

Как сгенерировать самоподписной сертификат?

Создать файл mycert.pem, в котором будет и секретный ключ и открытый сертификат, основанный на нём. Сертификат будет действителен в течение 365 дней; ключ (благодаря опции -nodes) будет нешифрованным.

После вызова команды надо будет ответить на несколько вопросов: Country Name, State, City и так далее. На вопрос “Common Name” нужно отвечать именем сервера, по которому будут обращаться люди.

Можно автоматизировать ввод ответов с помощью опции -subj.

Как сгенерировать запрос сертификата у VeriSign?

Секретный ключ в файле mykey.pem и запрос на сертификат myreq.pem:

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

Или, с информацией для сертификата прямо в командной строке:

Не допускайте ошибок в названиях! Каждый символ важен.

Файл с ключом нужно сохранить в надёжном месте.

Как проверить новый сертификат?

Подкоманда s_server предоставляет простой, но эффективный метод тестирования. В примерах ниже предполагается, что ключ и сертификат хранятся в файле mycert.pem.

Запустите тестовый сервер на машине, на которой будет использоваться сертификат. По умолчанию, открывается порт 4433; другой порт можно задать опцией -accept.

Если команда запустилась без ошибок, открывайте в браузере страницу: https://127.0.0.1:4433/

Как получить удалённый сертификат?

С помощью openssl и sed:

Можно вернуть данные openssl, например, для того чтобы выяснить, для каких дат он действителен:

Как извлечь какую-либо информацию из сертификата?

В SSL-сертификате есть много информации, в частности:

Опция текст даёт весь объём информации:

Другие опции дают другую информацию:

Извлечение открытого ключа, который требуется для проверки цифровой подписи (дайджеста):

Как экспортировать или импортировать сертификат PKCS#12?

Превратить pfx в pem:

Проверка сертификата

Приложения, слинкованные с библиотеками OpenSSL, могут проверять подлинность сертификатов, выданных сервером сертификатов (certificate authority, CA).

Как проверить сертификат?

Использовать подкоманду verify:

Если в сертификате всё в норме, то будет выдано сообщение OK:

Если чего-то не хватает, появятся соответствующие сообщения об ошибках, например:

Какие центры сертификации распознаёт OpenSSL?

По умолчанию, этот каталог находится в /usr/local/ssl, но большинство сборщиков размещает его в других местах, таких как /etc/pki/tls (Red Hat/Fedora), /etc/ssl (Gentoo), /usr/lib/ssl (Debian) или /System/Library/OpenSSL (Macintosh OS X).

Посмотреть, какой именно каталог используется в конкретной инсталляции, можно с помощью опции version(параметр OPENSSLDIR):

Внутри данного каталога есть подкаталог certs/, в котором находятся файлы трёх разных типов:

Например, ссылка f73e89fd.0 указывает на файл vsignss.pem. Значит, сертификат соответствует хэшу, который равен имени ссылки:

Когда приложение получает удалённый сертификат, оно сначала проверяет, есть ли этот сертификат в cert.pem и, если нет, смотрит в файле, соответствующем хэшу сертификата. Если такой файл найден, сертификат считается верным.

Нужно иметь в виду, что некоторые приложения, такие как Sendmail, например, позволяют во время исполнения указывать местоположение сертификатов, а некоторые, например Pine, нет.

Как мне заставить OpenSSL признавать сертификат?

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

Клиенты и серверы для командной строки

Подкоманды s_client и s_server предоставляют возможность для запуска SSL-клиентов для командной строки.

Как подключиться к безопасному SMTP-серверу?

С помощью подкоманды s_client можно проверить или даже использовать SMTP-сервер с поддержкой SSL.

Безопасные SMTP-серверы могут предлагать безопасные соединения на портах: 25 (TLS), 465 (SSL) и 587 (TLS). Где-то в районе релиза 0.9.7 у openssl появилась возможность использовать STARTTLS в ходе общения с SMTP-серверами.

Чтобы использовать для обозначения конца строки именно CRLF, а не CR или LF, используется опция -crlf. Это важно особенно для Qmail.

Как подключиться к [какому-либо] безопасному серверу?

На момент написания openssl поддерживал TLS из командной строки только с SMTP, поэтому для других протоколов нужно использовать прямые SSL-соединения.

Как запустить SSL-сервер из командной строки?

Подкоманда s_server позволяет запустить сервер с поддержкой SSL прямо из командной строки; сервер предназначен только для проверки и отладки. Для полноценной работы рекомендуется использовать stunnel.

Подкоманда s_server работает намного лучше, если есть сертификат; когда его нет, её возможности сильно сокращаются.

Дайджесты

Создание дайджестов (криптографических контрольных сумм) с помощью подкоманды dgst — одна из наиболее распространённых задач, выполняемых с помощью openssl.

Как создавать дайджесты MD5 или SHA1?

Дайджесты создаются с помощью подкоманды dgst:

Дайджест MD5 эквивалентен дайджесту, создаваемому известной утилитой md5sum, хотя выводится в другом формате:

То же верно и для дайджестов SHA1 и программы sha1sum:

Как подписать дайджест?

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

Подписать дайджест SHA1 для файла foo-1.23.tar.gz:

Как проверить подписанный дайджест?

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

Как создать запись типа digest для файла паролей Apache?

У web-сервера Apache есть специальный формат файла с паролями, использующийся для выполнения digest-аутентификации. В комплект с web-сервером входит утилита htdigest, но она умеет записывать данные только в файл, а не на стандартный поток вывода. При работе с удалёнными пользователями может быть целесообразным им сначала сгенерировать хэш, а потом переправить его по почте или другому каналу информации для включения в базу.

Формат базы паролей прост: список нескольких полей, разделённых двоеточиями. Поля:

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

Какие ещё есть дайджесты?

Подкоманда list-message-digest-commands даёт список типов дайджестов, доступных в данной инсталляции.

Шифрование/расшифровка

Как закодировать что-то по методу base64?

Использовать опцию -base64.

Закодировать одну строку:

Без перевода строки (важно для паролей):

Опция -d выполняет обратный процесс (то есть, раскодирование):

Как зашифровать файл?

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

Список поддерживаемых шифров есть на странице enc(1). Более просто (и более точно) узнать этот список у самой программы openssl.

Кроме выбора шифра нужно также решить, будут ли данные закодированы в base64. Если будут, то их можно будет, грубо говоря, вставить в почтовое сообщение, прямо в текст. В противном случае это будет простой бинарный файл.

Расшифровка файла на стороне получателя:

Можно не вводить парольную фразу постоянно при шифровании и расшифровке, а передавать её автоматически (подробнее: openssl(1); раздел «PASS PHRASE ARGUMENTS»). Формат аргумента прост:

Ошибки

Как интерпретировать сообщения об ошибках SSL?

В системных журналах обнаружились строки, которые, похоже, имеют отношение к OpenSSL или crypto:

В первом приближении определить, что не так, можно с помощью подкоманды errstr, которая умеет интерпретировать код ошибки. Код ошибки находится между «error:» и «:lib». В данном случае это 0407006A.

Дальше информацию надо искать в документации. В данном случае в man-странице RSA_padding_add_PKCS1_type_1(3) будет написано, что PKCS #1 использует для подписей блочные методы.

Ключи

Как сгенерировать ключ RSA?

Использовать подкоманду genrsa:

Как сгенерировать открытый ключ RSA?

С помощью подкоманды rsa можно создать открытую версию для закрытого ключа RSA:

Как сгенерировать ключ DSA?

Для построения ключей DSA нужен специальный файл параметров (parameter file), кроме того, операции с DSA медленнее чем аналогичные операции с RSA, в связи с этим, DSA используется не так часто, как RSA.

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

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

Как создать ключ, основанный на эллиптических кривых (elliptic curve key)?

Процедуры для работы с эллиптическими кривыми были добавлены в openssl, начиная с версии 0.9.8. Работа с этими процедурами выполняется через подкоманду ecparam.

Как создать открытый EC ключ?

С помощью подкоманды ec можно создать открытую версию для закрытого ключа EC (elliptic curve):

Как удалить парольную фразу у ключа?

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

Допустим, ключ, зашифрованный парольной фразой, находится в файле key.pem; после выполнения команды расшифрованный ключ будет в newkey.pem:

Если закрытый ключ (private key) и открытый сертификат хранятся в одном файле, нужно будет выполнить две команды:

Хэши для паролей

С помощью подкоманды passwd можно генерировать хэши паролей, которые совместимы со стандартными хэшами из /etc/passwd, /etc/shadow или файла паролей Apache.

Как сгенерировать хэш в стиле crypt?

Сгенерировать хэш очень просто:

Если salt для пароля известен, можно воссоздать хэш.

Как сгенерировать хэш пароля в стиле shadow?

Простые числа

Поскольку openssl активно использует механизмы для работы с простыми числами, не удивительно, что в нём есть соответствующие процедуры. Начиная с версии 0.9.7e (или где-то так), в openssl появилась подкоманда binary.

Как проверить, является ли число простым?

Передать число как аргумент к подкоманде prime. Результат будет не в десятичном, а в шестнадцатеричном виде.

Можно проверять и шестнадцатеричные числа:

Как сгенерировать набор простых чисел?

Сгенерировать множество чисел и оставить только простые среди них. Для генерирования последовательностей удобно использовать seq.

Случайные данные

Как генерировать случайные данные?

Используйте подкоманду rand.

На UNIX/Linux-системах, в которых есть файл /dev/urandom, похожего эффекта можно добиться иначе, и иногда с лучшим результатом даже:

Между устройствами random и urandom есть разница. Дополнительная информация в random(4) для Linux и BSD или random(7D) для Solaris.

S/MIME

S/MIME — стандарт для получения и отправки безопасных MIME-данных, в особенности, почтовых сообщений. Большинство почтовых клиентов умеет работать с такими сообщениями сами, но для этого же можно использовать и openssl smime.

Много хороших примеров есть в smime(1).

Как проверить подписанное сообщение S/MIME?

Проверить, сохранённое в файле msg.txt подписанное сообщение:

Если сертификат отправителя подписан сервером сертификатов, которому доверяет инсталляция OpenSSL, будут показаны заголовки сообщения, копия сообщения и заключительная строка «Verification successful».

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

Если сертификат не опознан, возникнет похожая ошибка:

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

Дальше этот сертификат можно или интегрировать в инфраструктуру OpenSSL, или сохранить его для будущего использования, например, такого:

Как зашифровать сообщение S/MIME?

Допустим, кто-то прислал вам свой сертификат, которым попросил шифровать сообщения ему. Сертификат сохранён в her-cert.pem. Ответ сохранен в файле my-message.txt.

Для того чтобы получить шифрование по умолчанию RC2-40 (оно, правда, слабое), нужно только сказать ‘openssl, где находится сертификат:

Если есть уверенность, что на удалённой стороне есть современная поддержка SSL, можно использовать алгоритм шифрования посильнее чем DES:

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

Как подписать сообщение S/MIME?

Подписать (но не шифровать) сообщение своим собственным сертификатом, так чтобы получатель имел возможность убедиться, кто является истинным автором.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *