%META:TOPICINFO{author="roman" comment="reprev" date="1606986355" format="1.1" reprev="1" version="3"}%
%META:TOPICPARENT{name="ListOfFaq"}%
---+!! Полезные команды Openssl
Если что-то не получается - идите [[https://ssl4less.ru/ssl-tools/convert-certificate.html][сюда]]. При копипасте заменить символ "-". Он наверняка будет не тот. Часть команд требует опции -passout pass:PASSWORD или -passin pass:PASSWORD или обоих вместе.
%TOC%
---++ Типы сертификатов
* PEM - очень часто используется в Linux based системах или оборудовании, файлы такого формата сертификата используют расширение .cer, .crt, and .pem.
* DER - двоичная формат сертификата. DER формат не содержит текста "BEGIN CERTIFICATE/END CERTIFICATE", формат DER чаще всего использует расширение .der
* PKCS#7 или P7B - эти форматы сертификата хранятся в формате Base64 ASCII и чаще всего имеют расширения файлов .p7b или .p7c. Файл P7B, кроме самого сертификата содержит цепочку сертификатов (открытых ключей) выпускающих центров сертификации (Intermediate CAs). Этот формат поддерживается в Microsoft Windows и Java Tomcat.
* PKCS#12 или PFX - эти форматы представляют собой двоичный формат для хранения сертификата сервера, промежуточных сертификатов и закрытого ключа в одном зашифрованном файле. Файлы такого формата сертификата используют расширение .pfx and .p12. PFX файлы обычно используются на windows машинах для импорта/экспорта сертификатов и закрытого ключа.
---++ Создание нового секретного ключа и запрос на получение сертификата
openssl req -out cert.csr -newkey rsa:2048 -nodes -key cert.key
Команда генерирует CSR и файл 2048-битногоRSA-ключа. Если вы собираетесь использовать этот сертификат на Apache или Nginx, то необходимо отправить CSR-файл в центр сертификации. Он предоставит вам заверенный сертификат (в формате der или pem), который нужно настроить на веб-сервере Apache или Nginx.
---++ Создание самоподписанного сертификата
openssl req -x509 -sha256 -nodes -days 730 -newkey rsa:2048 -key selfsigned.key -out sfcert.pem
Команда генерирует самозаверенный сертификат и файл 2048-битного RSA-ключа.
---++ Верификация CSR-файла
openssl req -noout -text -in cert.csr
Верификация необходима, чтобы отправленный в регистрационный центр CSR-файл содержал всю необходимую информацию.
---++ Создание секретного RSA-ключа
openssl genrsa -out private.key 2048
---++ Создание CSR с использованием существующего секретного ключа
openssl req -out certificate.csr -keyexisting.key -new
Если не хотите создавать новый секретный ключ вместо существующего, выполните приведенную выше команду.
---++ Удаление пароля-фразы из ключа
openssl rsa -in certkey.key -out nopassphrase.key
Если вы используете составной пароль (фразу) в файле ключа и работаете на Apache, то при каждом запуске нужно вводить секретную фразу. Если вас это раздражает, то можно использовать приведенную выше команду, чтобы удалить пароль-фразу из существующего ключа.
---++ Верификация секретного ключа
openss lrsa -in certkey.key -check
---++ Печать содержимого файла сертификата
openssl x509 -in certfile.pem -text -noout
---++ Верификация центра сертификации
openssl x509 -in certfile.pem -noout -issuer -issuer_hash
---++ Проверка хеш-значения сертификата
openssl x509 -noout -hash -in bestflare.pem
---++ Проверка содержимого сертификата в формате PKCS12
openssl pkcs12 -info -nodes -in cert.p12
PKCS12 является двоичным форматом, поэтому вы не сможете просмотреть его содержимое в текстовом редакторе. Для просмотра файла в формате PKCS12 используйте приведенную выше команду.
---++ Проверка даты истечения срока действия PEM-файла
openssl x509 -noout -in certificate.pem -dates
---++ Конвертация сертификатов
---+++ Конвертирование x509 в PEM
openssl x509 -in certificate.cer -outform PEM -out certificate.pem
---+++ Преобразование формата DER в PEM
openssl x509 -inform der -in sslcert.der -out sslcert.pem
Центр сертификации предоставляет SSL-сертификат в формате .der. Если вам необходимо использовать его в формате apache или .pem, примените приведенную выше команду для соответствующего преобразования.
---+++ Преобразование формата PEM в DER
openssl x509 -outform der -in sslcert.pem -out sslcert.der
---+++ Преобразование сертификата и секретного ключа в формат PKCS#12
openssl pkcs12 -export -out sslcert.pfx -inkey key.pem -in sslcert.crt
Если необходимо использовать сертификат с оборудованием принимающим только формат PKCS#12, примените приведенную выше команду. Она генерирует один pfx файл, содержащий сертификат и ключ.
Вы также можете включить цепочку сертификатов, передав параметр -chain, как показано в примере ниже.
openssl pkcs12 -export -out sslcert.pfx -inkey key.pem -in sslcert.cert -chain cacert.pem
---+++ Конвертирование PEM в P7B
openssl crl2pkcs7 -nocrl -certfile certificate.pem -out certificate.p7b -certfile CACert.cer
---+++ Конвертирование PKCS7 в PEM
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.pem
---+++ Преобразование формата PKCS12 в PEM-сертификат
openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes
Если нужно использовать существующий файл в формате pkcs12 на Apache или только в формате pem, в этом поможет приведенная выше команда.
---+++ Конвертирование PFX в PKCS#8
openssl pkcs12 -in certificate.pfx -nocerts -nodes -out certificate.pem
openSSL pkcs8 -in certificate.pem -topk8 -nocrypt -out certificate.pk8
---+++ Конвертирование P7B в PFX
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
openssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx -certfile cacert.cer
---++ Проверка удалённого хоста
---+++ Проверка SSL-сертификата определенного URL-адреса
openssls_client -connect yoururl.com:443 -showcerts
---+++ Проверка срока действия SSL-сертификата для URL-адреса
openssl s_client -connect secureurl.com:443 2>/dev/null | openssl x509 -noout -enddate
---+++ Проверка, принимается ли на URL-адресе определённая версия SSL/TLS
openssl s_client -connect secureurl.com:443 -ssl2
openssl s_client -connect secureurl.com:443 -ssl3
openssl s_client -connect secureurl.com:443 -tls1
openssl s_client -connect secureurl.com:443 -tls1_1
openssl s_client -connect secureurl.com:443 -tls1_2
Если необходимо проверить, включен ли SSL V2 / V3 или нет, используйте приведенную выше команду. Если он включен, то вы получите сообщение «CONNECTED», в противном случае -сообщение «handshake failure».
---+++ Проверка того, принимается ли конкретный шифр на URL-адресе
openssl s_client -cipher 'ECDHE-ECDSA-AES256-SHA' -connect secureurl:443
Если шифр будет принят, вы получите сообщение «CONNECTED», иначе - сообщение «handshake failure».
-- Main.RomanDmitriev - 15 Nov 2020
%META:PREFERENCE{name="DENYTOPICVIEW" title="DENYTOPICVIEW" type="Set" value="WikiGuest"}%
%META:PREFERENCE{name="DENYTOPICCHANGE" title="DENYTOPICCHANGE" type="Set" value="WikiGuest"}%
%META:PREFERENCE{name="PERMSET_VIEW" title="PERMSET_VIEW" type="Local" value="registeredusers"}%
%META:PREFERENCE{name="PERMSET_CHANGE" title="PERMSET_CHANGE" type="Local" value="registeredusers"}%