- Примеры использования OpenSSL в Unix/Linux
- Примеры использования OpenSSL в Unix/Linux
- Создание нового приватного ключа (Private Key) и Certificate Signing Request (CSR).
- Создание самоподписанного сертификата (Self-Signed Certificate).
- Проверка CSR файла.
- Создать приватный RSA ключ (Private Key).
- Удалить ключевую фразу (Passphrase) с ключа.
- Проверка сертификата (Certificate).
- Проверка подписанного сертификата (Certificate Signer Authority).
- Создать тестовый SSL сервер.
- Проверить хеш вашего сертификата.
- Конвертирование сертификатов с DER в PEM формат.
- Конвертирование сертификатов с PEM в DER формат.
- Конвертирование CSR c DER в PEM формат.
- Конвертирование сертификата и приватного ключа в PKCS#12 фотмат.
- Создание CSR используя приватный ключ (private key).
- Проверьте содержимое сертификата в PKCS12 формате.
- Конвертирование PKCS12 формата в PEM сертификат.
- Получить SHA-1 отпечаток сертификата или CSR
- Получить MD5 отпечаток сертификата или CSR
- Тестирование SSL сертификата по URL.
- Поверка PEM сертификата на завершение (Expiration Date).
- Проверка завершения SSL сертификата (Expiration Date) по URL.
- Проверить поддержку SSL версии V2/V3 по URL.
- Проверка поддержки cipher для сайта по URL.
- Какой алгоритм используется в сертификате (проверка).
- Получить сертификат по URL
- OpenSSL -что это? 21 пример команд OpenSSL, которые помогут вам на практике
- 1. Создание нового секретного ключа и запрос на получение сертификата
- 2. Создание самозаверяемого сертификата
- 3. Верификация CSR-файла
- 4. Создание секретного RSA-ключа
- 5. Удаление пароля-фразы из ключа
- 6. Верификация секретного ключа
- 7. Верификация файла сертификата
- 8. Верификация центра сертификации
- 9. Проверка хеш-значения сертификата
- 10. Преобразование формата DER в PEM
- 11. Преобразование формата PEM в DER
- 12. Преобразование сертификата и секретного ключа в формат PKCS#12
- 13. Создание CSR с использованием существующего секретного ключа
- 14. Проверка содержимого сертификата в формате PKCS12
- 15. Преобразование формата PKCS12 в PEM-сертификат
- 16. Проверка SSL-сертификата определенного URL-адреса
- 17. Определение версии OpenSSL
- 18. Проверка даты истечения срока действия PEM-файла
- 19. Проверка срока действия SSL-сертификата для URL-адреса
- 20. Проверка, принимается ли на URL-адресеSSL V2 или V
- 21. Проверка того, принимается ли конкретный шифр на URL-адресе
- Openssl, проверка SSL-сертификатов через терминал
- 1. Генерация CSR и ключа
- 2. Создание нового CSR для уже имеющегося ключа.
- 3. Проверка корректности CSR
- 4. Проверка корректности ключа
- 5. Проверка данных SSL-сертификата
- 6. Декодирование CSR
- 7. Декодирование SSL-сертификата
- 8. Сравнение соответствия SSL-сертификата и ключа
- 9. Сравнение соответствия SSL-сертификата и CSR
- 10. Проверка правильности порядка установки CA сертификатов.
Примеры использования 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).
Если вы не хотите создать новый секретный ключ, а хотите используя вместо существующего, вы можете с предыдущей командой.
Проверьте содержимое сертификата в 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 -что это? 21 пример команд OpenSSL, которые помогут вам на практике
Одним из самых популярных инструментов для создания и управления SSL-сертификатами является библиотека OpenSSL. В этой статье я расскажу о часто используемых командах OpenSSL.
Некоторые аббревиатуры, относящиеся к сертификатам:
- SSL – Secure Socket Layer (уровень защищённых cокетов).
- CSR – Certificate Signing Request (запрос на получение сертификата).
- TLS – Transport Layer Security (протокол защиты транспортного уровня).
- PEM – Privacy Enhanced Mail (формат файлов для хранения и отправки криптографических ключей).
- SHA – Secure Hash Algorithm (алгоритм криптографического хеширования).
- PKCS – Public-Key Cryptography Standards (стандарты криптографии с открытым ключом).
1. Создание нового секретного ключа и запрос на получение сертификата
Команда генерирует CSR и файл 2048-битногоRSA-ключа. Если вы собираетесь использовать этот сертификат на Apache или Nginx, то необходимо отправить CSR-файл в центр сертификации. Он предоставит вам заверенный сертификат (в формате der или pem) , который нужно настроить на веб-сервере Apache или Nginx.
2. Создание самозаверяемого сертификата
Команда генерирует самозаверенный сертификат и файл 2048-битного RSA-ключа. Я также включил в команду хеш-функцию sha256, поскольку она считается наиболее безопасной.
Совет: По умолчанию команда генерирует самозаверенный сертификат, действительный только один месяц. Для увеличения этого срока переопределите параметра — days.
Пример: для получения сертификата, действительного два года.
3. Верификация CSR-файла
Верификация необходима, чтобы отправленный в регистрационный центр CSR-файл содержал всю необходимую информацию.
4. Создание секретного RSA-ключа
Если нужно создать секретный RSA-ключ, используйте приведенную выше команду.
5. Удаление пароля-фразы из ключа
Если вы используете составной пароль (фразу) в файле ключа и работаете на Apache, то при каждом запуске нужно вводить секретную фразу. Если вас это раздражает, то можно использовать приведенную выше команду, чтобы удалить пароль-фразу из существующего ключа.
6. Верификация секретного ключа
Если вы сомневаетесь в файле ключа, то можете использовать данную команду.
7. Верификация файла сертификата
Если хотите проверить данные сертификата, такие как CN, OU и т.д., используйте приведенную выше команду, которая предоставит данные сертификата.
8. Верификация центра сертификации
Для проверки центра сертификации можно использовать приведенную выше команду.
9. Проверка хеш-значения сертификата
10. Преобразование формата DER в PEM
Центр сертификации предоставляет SSL-сертификат в формате .der . Если вам необходимо использовать его в формате apache или .pem , примените приведенную выше команду для соответствующего преобразования.
11. Преобразование формата PEM в DER
Если необходимо изменить формат .pem на .der .
12. Преобразование сертификата и секретного ключа в формат PKCS#12
Если необходимо использовать сертификат с Java-приложением, принимающим только формат PKCS#12, примените приведенную выше команду. Она генерирует один pfx файл, содержащий сертификат и ключ.
Совет. Вы также можете включить цепочку сертификатов, передав параметр -chain, как показано в примере ниже.
13. Создание CSR с использованием существующего секретного ключа
Если не хотите создавать новый секретный ключ вместо существующего, выполните приведенную выше команду.
14. Проверка содержимого сертификата в формате PKCS12
PKCS12 является двоичным форматом, поэтому вы не сможете просмотреть его содержимое в текстовом редакторе. Для просмотра файла в формате PKCS12 используйте приведенную выше команду.
15. Преобразование формата PKCS12 в PEM-сертификат
Если нужно использовать существующий файл в формате pkcs12 на Apache или только в формате 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-сертификатами.
Дайте знать, что вы думаете по данной теме материала в комментариях. За комментарии, отклики, подписки, лайки, дизлайки огромное вам спасибо!
Источник
Openssl, проверка SSL-сертификатов через терминал
При установке SSL-сертификатов возникают различные вопросы. Эта статья поможет найти ответы на большинство из них.
OpenSSL — криптографический пакет с открытым исходным кодом для работы с SSL/TLS. Позволяет создавать ключи RSA, DH, DSA и сертификаты X.509, подписывать их, формировать CSR и CRT. Также имеется возможность шифрования данных и тестирования SSL/TLS соединений.
Рассмотрим на примерах следующие случаи:
1. Генерация CSR и ключа.
2. Создание нового CSR для уже имеющегося ключа.
3. Проверка корректности CSR.
4. Проверка корректности ключа.
5. Проверка данных SSL-сертификата.
6. Декодирование CSR.
7. Декодирование SSL-сертификата.
8. Сравнение соответствия SSL-сертификата и CSR.
9. Сравнение соответствия SSL-сертификата и ключа.
10. Проверка правильности порядка установки CA сертификатов.
Первое что нужно сделать — это зайти по SSH на сервер и установить OpenSSL.
1. Генерация CSR и ключа
Перейдем в директорию, в которой будут хранится файлы CSR и ключа:
Далее выполняем команду генерации CSR и ключа:
server.csr – имя файла CSR;
server.key – имя файла ключа;
имена можно менять по своему усмотрению.
После ввода команды, так же как и через онлайн генератор CSR нужно ввести данные в поля:
Проверяем создались ли файлы:
Файлы создались, все в порядке. Можно заказывать SSL-сертификат.
Подробно о заказе и установке SSL-сертификата можно ознакомиться в статье “Заказ и установка SSL сертификата на хостинг Ukrnames”
Мы получили файлы сертификата (ukrnames_idua_org, ca_1, ca_2, ca_3) и переместим их так же в папку /etc/ssl/certs/
Можем переходить теперь к следующим пунктам статьи.
2. Создание нового CSR для уже имеющегося ключа.
Случаются ситуации, когда требуется продлить SSL-сертификат. Нужно заново вводить CSR запрос, но т.к. выполнялся заказ SSL-сертификата около года назад, то CSR файла у нас в большинстве случаев уже нет.
Данная команда позволит заново сгенерировать CSR-запрос на основании имеющегося у нас ключа (в данном примере ключ у нас находится в папке /etc/ssl/certs/server.key):
И вновь нужно вводить данные CSR.
Потом можем копировать данные файла server.csr и продлевать SSL-сертификат, копировать ключ уже не нужно, он заново сгенерирован в старый файл ключа /etc/ssl/certs/server.key.
3. Проверка корректности CSR
Выполним команду для проверки корректности содержимого CSR:
Получаем вывод, в котором стоит обратить внимание на поле verify , если стоит статус “OK” , значит с CSR все в порядке.
4. Проверка корректности ключа
Выполним команду для проверки корректности содержимого ключа:
Получаем вывод, в котором стоит обратить внимание на поле RSA key, если стоит статус “ok”, значит с ключом все в порядке.
5. Проверка данных SSL-сертификата
Переименуем для удобства файл сертификата ukrnames_idua_org в server.crt с помощью команды:
Выполним команду для проверки данных SSL-сертификата:
Получаем вывод, в котором можно ознакомится с подробностями SSL-сертификата (кто выдал, для какого домена выдан и т.д.).
6. Декодирование CSR
Иногда после генерации CSR хочется проверить правильность ввода данных. Для этого достаточно выполнить команду:
Получим вывод, в котором стоит обратить внимание на поле “Subject:”, в нем указаны все вводимые нами данные.
7. Декодирование SSL-сертификата
Вывести данные SSL-сертификата можно командой:
Вывод будет эдентичен выводу в пункте 5.
8. Сравнение соответствия SSL-сертификата и ключа
Для того чтобы сравнить SSL-сертификат и ключ, нужно будет вывести хеши данных их файлов и сравнить.
Получим вывод на экран хешей:
Невооруженным взглядом можно увидеть, что хеши совпадают, значит сертификат соответствует ключу.
9. Сравнение соответствия SSL-сертификата и CSR
Для данного примера заменим данные CSR файла /etc/ssl/certs/server.csr на другие:
Выполним команды для вывода хешей файлов /etc/ssl/certs/server.crt и /etc/ssl/certs/server.csr:
Получим вывод на экран:
Как видим, хеши отличаются – это означает, что сертификат не совпадает с CSR.
10. Проверка правильности порядка установки CA сертификатов.
На данном сервере, где выполнялись работы с openssl, установим веб-сервер, подключим домен ukrnames.idua.org и установим для него SSL-сертификат.
Т.к. веб-сервер не имеет доступа к папке /etc/ssl/certs/ , то копируем ключ, сертификат и промежуточные сертификаты в новосозданную папку /var/www/ssl/
В файле конфигурации веб-сервера подключаем файлы SSL-сертификата. Но чтобы все корректно работало, нужно создать файл для промежуточных сертификатов (к примеру ca.pem) и внести в него с определенной последовательностью данные файлов промежуточных сертификатов (ca_1, ca_2, ca_3).
Чтобы понять в какой последовательности нужно добавлять файлы, выполним ряд действий.
Получаем данные об издателе основного сертификата:
Теперь получим данные о промежуточных сертификатах ca_1, ca_2, ca_3 (нужно обращать внимание только на поля “Issuer:” и “Subject:”):
Получим вывод на экран:
Сопоставив данные сертификата и промежуточных сертификатов, можно сделать вывод, что после основного сертификата первым промежуточным должен идти сертификат ca_3, т.к. в поле “Subject:” раздел CN файла ca_3 совпадает с полем “Issuer:” разделом CN (CN=COMODO RSA Domain Validation Secure Server CA).
Далее смотрим на поле “Issure:” раздел CN файла ca_3 (CN=COMODO RSA Certification Authority). Ищем в выводах файлов ca_2 и ca_1 совпадение в полях “Subject:” . Совпадение найдено в файле ca_2, данный файл мы будем подключать вторым.
И методом исключения, файл ca_1 будет подключаться самым последним.
Выполняем команды для объединения всех файлов промежуточных сертификатов(ca_1, ca_2, ca_3) в один (ca.pem):
Теперь можем увидеть полную цепочку установленных сертификатов с помощью команды:
Получим вывод на экран правильной цепочки подключения сертификатов:
Источник