Openssl linux ���������� ����������

Содержание
  1. OpenSSL
  2. Contents
  3. Installation
  4. Configuration
  5. req section
  6. Usage
  7. Generate a Curve25519 private key
  8. Generate an ECDSA private key
  9. Generate an RSA private key
  10. Generate a certificate signing request
  11. Generate a self-signed certificate
  12. Generate a self-signed certificate with private key in a single command
  13. Generate Diffie–Hellman parameters
  14. Troubleshooting
  15. «bad decrypt» while decrypting
  16. Open SSL
  17. Cryptography and SSL/TLS Toolkit
  18. openssl
  19. SYNOPSIS
  20. DESCRIPTION
  21. COMMAND SUMMARY
  22. STANDARD COMMANDS
  23. Примеры использования OpenSSL в Unix/Linux
  24. Примеры использования OpenSSL в Unix/Linux
  25. Создание нового приватного ключа (Private Key) и Certificate Signing Request (CSR).
  26. Создание самоподписанного сертификата (Self-Signed Certificate).
  27. Проверка CSR файла.
  28. Создать приватный RSA ключ (Private Key).
  29. Удалить ключевую фразу (Passphrase) с ключа.
  30. Проверка сертификата (Certificate).
  31. Проверка подписанного сертификата (Certificate Signer Authority).
  32. Создать тестовый SSL сервер.
  33. Проверить хеш вашего сертификата.
  34. Конвертирование сертификатов с DER в PEM формат.
  35. Конвертирование сертификатов с PEM в DER формат.
  36. Конвертирование CSR c DER в PEM формат.
  37. Конвертирование сертификата и приватного ключа в PKCS#12 фотмат.
  38. Создание CSR используя приватный ключ (private key).
  39. Проверьте содержимое сертификата в PKCS12 формате.
  40. Конвертирование PKCS12 формата в PEM сертификат.
  41. Получить SHA-1 отпечаток сертификата или CSR
  42. Получить MD5 отпечаток сертификата или CSR
  43. Тестирование SSL сертификата по URL.
  44. Поверка PEM сертификата на завершение (Expiration Date).
  45. Проверка завершения SSL сертификата (Expiration Date) по URL.
  46. Проверить поддержку SSL версии V2/V3 по URL.
  47. Проверка поддержки cipher для сайта по URL.
  48. Какой алгоритм используется в сертификате (проверка).
  49. Получить сертификат по URL
  50. Как установить OpenSSL в Ubuntu 20.04 LTS
  51. Как установить OpenSSL в Ubuntu 20.04 LTS
  52. Установите OpenSSL на Ubuntu 20.04 LTS Focal Fossa
  53. Шаг 1. Во-первых, убедитесь, что все ваши системные пакеты обновлены, выполнив следующие apt команды в терминале.
  54. Шаг 2. Установка OpenSSL на Ubuntu 20.04.
  55. Шаг 3. Настройка двоичного файла OpenSSL.

OpenSSL

OpenSSL is an open-source implementation of the SSL and TLS protocols, designed to be as flexible as possible. It is supported on a variety of platforms, including BSD, Linux, OpenVMS, Solaris and Windows.

Contents

Installation

openssl is installed by default on Arch Linux (as a dependency of coreutils ).

There are various OpenSSL library bindings available for developers:

Configuration

On Arch Linux the OPENSSLDIR is /etc/ssl .

The OpenSSL configuration file, conventionally placed in /etc/ssl/openssl.cnf , may appear complicated at first. Remember that variables may be expanded in assignments, much like how shell scripts work. For a thorough explanation of the configuration file format, see config(5ssl) .

req section

This article or section is a candidate for merging with #Generate a certificate signing request.

Settings related to generating keys, requests and self-signed certificates.

The req section is responsible for the DN prompts. A general misconception is the Common Name (CN) prompt, which suggests that it should have the user’s proper name as a value. End-user certificates need to have the machine hostname as CN, whereas CA should not have a valid TLD, so that there is no chance that, between the possible combinations of certified end-users’ CN and the CA certificate’s, there is a match that could be misinterpreted by some software as meaning that the end-user certificate is self-signed. Some CA certificates do not even have a CN, such as Equifax:

Usage

Generate a Curve25519 private key

Generate an ECDSA private key

Generate an RSA private key

With genpkey(1ssl) , which supersedes genrsa according to openssl(1ssl) :

If an encrypted key is desired, use the -aes-256-cbc option.

Generate a certificate signing request

Generate a self-signed certificate

Generate a self-signed certificate with private key in a single command

You can combine the above command in OpenSSL into a single command which might be convenient in some cases:

Generate Diffie–Hellman parameters

Current best practice is to use one of the standard DH groups from RFC 7919, eg. ffdhe2048.

Читайте также:  Удаление символической ссылки windows

Alternatively you can generate a random group of your own:

Troubleshooting

«bad decrypt» while decrypting

OpenSSL 1.1.0 changed the default digest algorithm for the dgst and enc commands from MD5 to SHA256. [2]

Therefore if a file has been encrypted using OpenSSL 1.0.2 or older, trying to decrypt it with an up to date version may result in an error like:

Supplying the -md md5 option should solve the issue:

Источник

Open SSL

Cryptography and SSL/TLS Toolkit

openssl

openssl — OpenSSL command line tool

SYNOPSIS

openssl command [ command_opts ] [ command_args ]

openssl [ list-standard-commands | list-message-digest-commands | list-cipher-commands | list-cipher-algorithms | list-message-digest-algorithms | list-public-key-algorithms]

DESCRIPTION

OpenSSL is a cryptography toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) network protocols and related cryptography standards required by them.

The openssl program is a command line tool for using the various cryptography functions of OpenSSL’s crypto library from the shell. It can be used for

COMMAND SUMMARY

The openssl program provides a rich variety of commands (command in the SYNOPSIS above), each of which often has a wealth of options and arguments (command_opts and command_args in the SYNOPSIS).

The pseudo-commands list-standard-commands, list-message-digest-commands, and list-cipher-commands output a list (one entry per line) of the names of all standard commands, message digest commands, or cipher commands, respectively, that are available in the present openssl utility.

The pseudo-commands list-cipher-algorithms and list-message-digest-algorithms list all cipher and message digest names, one entry per line. Aliases are listed as:

The pseudo-command list-public-key-algorithms lists all supported public key algorithms.

The pseudo-command no-XXX tests whether a command of the specified name is available. If no command named XXX exists, it returns 0 (success) and prints no-XXX; otherwise it returns 1 and prints XXX. In both cases, the output goes to stdout and nothing is printed to stderr. Additional command line arguments are always ignored. Since for each cipher there is a command of the same name, this provides an easy way for shell scripts to test for the availability of ciphers in the openssl program. (no-XXX is not able to detect pseudo-commands such as quit, list-. -commands, or no-XXX itself.)

STANDARD COMMANDS

Parse an ASN.1 sequence.

Certificate Authority (CA) Management.

Cipher Suite Description Determination.

CMS (Cryptographic Message Syntax) utility

Certificate Revocation List (CRL) Management.

CRL to PKCS#7 Conversion.

Message Digest Calculation.

Diffie-Hellman Parameter Management. Obsoleted by dhparam.

Generation and Management of Diffie-Hellman Parameters. Superseded by genpkey and pkeyparam

DSA Data Management.

DSA Parameter Generation and Management. Superseded by genpkey and pkeyparam

EC (Elliptic curve) key processing

EC parameter manipulation and generation

Encoding with Ciphers.

Engine (loadble module) information and manipulation.

Error Number to Error String Conversion.

Generation of Diffie-Hellman Parameters. Obsoleted by dhparam.

Generation of DSA Private Key from Parameters. Superseded by genpkey and pkey

Generation of Private Key or Parameters.

Generation of RSA Private Key. Superceded by genpkey.

Create or examine a netscape certificate sequence

Online Certificate Status Protocol utility.

Generation of hashed passwords.

PKCS#12 Data Management.

PKCS#7 Data Management.

Public and private key management.

Public key algorithm parameter management.

Public key algorithm cryptographic operation utility.

Generate pseudo-random bytes.

PKCS#10 X.509 Certificate Signing Request (CSR) Management.

RSA key management.

RSA utility for signing, verification, encryption, and decryption. Superseded by pkeyutl

This implements a generic SSL/TLS client which can establish a transparent connection to a remote server speaking SSL/TLS. It’s intended for testing purposes only and provides only rudimentary interface functionality but internally uses mostly all functionality of the OpenSSL ssl library.

This implements a generic SSL/TLS server which accepts connections from remote clients speaking SSL/TLS. It’s intended for testing purposes only and provides only rudimentary interface functionality but internally uses mostly all functionality of the OpenSSL ssl library. It provides both an own command line oriented protocol for testing SSL functions and a simple HTTP response facility to emulate an SSL/TLS-aware webserver.

Читайте также:  Creating directory c windows

SSL Connection Timer.

SSL Session Data Management.

S/MIME mail processing.

Algorithm Speed Measurement.

SPKAC printing and generating utility

Time Stamping Authority tool (client/server)

Источник

Примеры использования OpenSSL в Unix/Linux

Примеры использования OpenSSL в Unix/Linux

При работе с SSL, нужно уметь работать с утилитой OpenSSL чтобы создавать, конвертировать, управляют SSL-сертификатами. В этой статье «Примеры использования OpenSSL в Unix/Linux» я буду говорить о примерах использования OpenSSL.

Некоторые из сокращений, связанных с сертификатами:

  • SSL – Secure Socket Layer (Безопасный уровень сокета).
  • CSR – Certificate Signing Request (Запрос на подпись сертификата).
  • TLS – Transport Layer Security (Транспортный уровень безопастности).
  • PEM – Privacy Enhanced Mail
  • DER – Distinguished Encoding Rules
  • SHA – Secure Hash Algorithm (Безопасный hash алгорит).
  • PKCS – Public-Key Cryptography Standards (Стандарты шифрования публичных ключей).

Создание нового приватного ключа (Private Key) и Certificate Signing Request (CSR).

Команда выше будет генерировать CSR и 2048-битный RSA ключ. Если вы собираетесь использовать этот сертификат в Apache или Nginx, то вам необходимо отправить этот CSR файл в службу сертификации и они дадут вам подписанный сертификат в «der» или «pem» формате. После чего вы настроите его на веб-сервере Apache или Nginx.

Так же, можно использовать такой вариант:

Создание самоподписанного сертификата (Self-Signed Certificate).

Команда выше будет генерировать самоподписанный сертификат (self-signed) и 2048-битный RSA ключ. Я также использую алгорит шифрования — SHA256. Так как он считается наиболее безопасным в данный момент.

Замечание: По умолчанию, будет сгенерирован ключ толкьо на 1 месяц, если нужно создать на более длительное время — используйте опцию «–days», пример использования ниже.

Пример: Чтобы создать self-signed сертификат на 2 год, используйте:

Проверка CSR файла.

и вы получите информацию.

Проверка подписи (signature):

Кем(кому) был выдан сертификат:

Показать открытый ключ (public key):

Создать приватный RSA ключ (Private Key).

Чтобы это сделать, выполните:

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

Удалить ключевую фразу (Passphrase) с ключа.

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

Проверка приватного ключа (Private Key)

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

Проверка сертификата (Certificate).

Если вы хотите проверить данные сертификата( CN, OU, и т.д.), то вы можете использовать команду, которая даст вам сведения о сертификате:

Команда довольна простая в использовании.

Проверка подписанного сертификата (Certificate Signer Authority).

Можно узнать много полезного.

Создать тестовый SSL сервер.

Команда OpenSSL s_server реализует общий SSL/TLS-сервер. Она должна использоваться только для целей тестирования. В приведенном ниже примере данный сервер прослушивает соединения на порту 8080 и возвращает отформатированную HTML страницу статуса, который включает много информации о ciphers:

Проверить хеш вашего сертификата.

Конвертирование сертификатов с DER в PEM формат.

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

Конвертирование сертификатов с PEM в DER формат.

В случае, если вам необходимо изменить .pem формат в .der:

Конвертирование CSR c DER в PEM формат.

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

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

Совет: Вы можете включить «chain certificate» используя «-chain» опцию:

Создание CSR используя приватный ключ (private key).

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

Читайте также:  Как сделать резервную точку восстановления windows 10

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

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

Конвертирование PKCS12 формата в PEM сертификат.

Получить SHA-1 отпечаток сертификата или CSR

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

Чтобы получить SHA1 отпечаток пальца CSR с использованием OpenSSL, используйте команду, приведенную ниже:

Получить MD5 отпечаток сертификата или CSR

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

Чтобы получить MD5 отпечаток пальца CSR с использованием OpenSSL, используйте команду, приведенную ниже:

Тестирование SSL сертификата по URL.

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

Узнать версию OpenSSL

Поверка PEM сертификата на завершение (Expiration Date).

Проверка завершения SSL сертификата (Expiration Date) по URL.

Проверить поддержку SSL версии V2/V3 по URL.

Проверка SSL версии V2:

Проверка SSL версии V3:

Проверка TLS 1.0:

Проверка TLS 1.1:

Проверка TLS 1.2:

Проверка поддержки cipher для сайта по URL.

Какой алгоритм используется в сертификате (проверка).

Или, используя URL:

Получить сертификат по URL

Команда что ниже, сохранит сертификат в файл прямо по URL сайта:

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

Вот и все, много полезностей и все в одной статье «Примеры использования OpenSSL в Unix/Linux».

Источник

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

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

В этом руководстве мы покажем вам, как установить OpenSSL в Ubuntu 20.04 LTS. Для тех из вас, кто не знал, OpenSSL — это набор инструментов с открытым исходным кодом для протоколов Transport Layer Security (TLS) и Secure Sockets Layer (SSL), а также библиотека криптографии. OpenSSL используется многими программами, такими как веб-сервер Apache, PHP и многими другими, обеспечивая поддержку различных криптографических алгоритмов.

В этой статье предполагается, что у вас есть хотя бы базовые знания Linux, вы знаете, как использовать оболочку, и, что наиболее важно, вы размещаете свой сайт на собственном VPS. Установка довольно проста и предполагает, что вы работаете с учетной записью root, в противном случае вам может потребоваться добавить ‘ sudo ‘ к командам для получения привилегий root. Я покажу вам пошаговую установку OpenSSL на Ubuntu 20.04 (Focal Fossa). Вы можете следовать тем же инструкциям для Ubuntu 18.04, 16.04 и любого другого дистрибутива на основе Debian, например Linux Mint.

Установите OpenSSL на Ubuntu 20.04 LTS Focal Fossa

Шаг 1. Во-первых, убедитесь, что все ваши системные пакеты обновлены, выполнив следующие apt команды в терминале.

Шаг 2. Установка OpenSSL на Ubuntu 20.04.

Теперь скачиваем исходный код OpenSSL с официальной страницы:

Затем мы настраиваем и компилируем OpenSSL:

После установки OpenSSL целесообразно связать разделяемые библиотеки для него, чтобы они загружались во время выполнения:

Вставьте каталог пути к библиотеке OpenSSL:

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

Шаг 3. Настройка двоичного файла OpenSSL.

Теперь отредактируйте файл с помощью редактора nano: /etc/ environment

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

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

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

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

Поздравляю! Вы успешно установили OpenSSL . Благодарим за использование этого руководства по установке OpenSSL в системе Ubuntu 20.04 LTS Focal Fossa. Для получения дополнительной помощи или полезной информации мы рекомендуем вам посетить официальный сайт OpenSSL .

Источник

Оцените статью