| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- %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 машинах для импорта/экспорта сертификатов и закрытого ключа.
- ---++ Создание нового секретного ключа и запрос на получение сертификата
- <verbatim>
- openssl req -out cert.csr -newkey rsa:2048 -nodes -key cert.key
- </verbatim>
- Команда генерирует CSR и файл 2048-битногоRSA-ключа. Если вы собираетесь использовать этот сертификат на Apache или Nginx, то необходимо отправить CSR-файл в центр сертификации. Он предоставит вам заверенный сертификат (в формате der или pem), который нужно настроить на веб-сервере Apache или Nginx.
- ---++ Создание самоподписанного сертификата
- <verbatim>
- openssl req -x509 -sha256 -nodes -days 730 -newkey rsa:2048 -key selfsigned.key -out sfcert.pem
- </verbatim>
- Команда генерирует самозаверенный сертификат и файл 2048-битного RSA-ключа.
- ---++ Верификация CSR-файла
- <verbatim>
- openssl req -noout -text -in cert.csr
- </verbatim>
- Верификация необходима, чтобы отправленный в регистрационный центр CSR-файл содержал всю необходимую информацию.
- ---++ Создание секретного RSA-ключа
- <verbatim>
- openssl genrsa -out private.key 2048
- </verbatim>
- ---++ Создание CSR с использованием существующего секретного ключа
- <verbatim>
- openssl req -out certificate.csr -keyexisting.key -new
- </verbatim>
- Если не хотите создавать новый секретный ключ вместо существующего, выполните приведенную выше команду.
- ---++ Удаление пароля-фразы из ключа
- <verbatim>
- openssl rsa -in certkey.key -out nopassphrase.key
- </verbatim>
- Если вы используете составной пароль (фразу) в файле ключа и работаете на Apache, то при каждом запуске нужно вводить секретную фразу. Если вас это раздражает, то можно использовать приведенную выше команду, чтобы удалить пароль-фразу из существующего ключа.
- ---++ Верификация секретного ключа
- <verbatim>
- openss lrsa -in certkey.key -check
- </verbatim>
- ---++ Печать содержимого файла сертификата
- <verbatim>
- openssl x509 -in certfile.pem -text -noout
- </verbatim>
- ---++ Верификация центра сертификации
- <verbatim>
- openssl x509 -in certfile.pem -noout -issuer -issuer_hash
- </verbatim>
- ---++ Проверка хеш-значения сертификата
- <verbatim>
- openssl x509 -noout -hash -in bestflare.pem
- </verbatim>
- ---++ Проверка содержимого сертификата в формате PKCS12
- <verbatim>
- openssl pkcs12 -info -nodes -in cert.p12
- </verbatim>
- PKCS12 является двоичным форматом, поэтому вы не сможете просмотреть его содержимое в текстовом редакторе. Для просмотра файла в формате PKCS12 используйте приведенную выше команду.
- ---++ Проверка даты истечения срока действия PEM-файла
- <verbatim>
- openssl x509 -noout -in certificate.pem -dates
- </verbatim>
- ---++ Конвертация сертификатов
- ---+++ Конвертирование x509 в PEM
- <verbatim>
- openssl x509 -in certificate.cer -outform PEM -out certificate.pem
- </verbatim>
- ---+++ Преобразование формата DER в PEM
- <verbatim>
- openssl x509 -inform der -in sslcert.der -out sslcert.pem
- </verbatim>
- Центр сертификации предоставляет SSL-сертификат в формате .der. Если вам необходимо использовать его в формате apache или .pem, примените приведенную выше команду для соответствующего преобразования.
- ---+++ Преобразование формата PEM в DER
- <verbatim>
- openssl x509 -outform der -in sslcert.pem -out sslcert.der
- </verbatim>
- ---+++ Преобразование сертификата и секретного ключа в формат PKCS#12
- <verbatim>
- openssl pkcs12 -export -out sslcert.pfx -inkey key.pem -in sslcert.crt
- </verbatim>
- Если необходимо использовать сертификат с оборудованием принимающим только формат PKCS#12, примените приведенную выше команду. Она генерирует один pfx файл, содержащий сертификат и ключ.
- Вы также можете включить цепочку сертификатов, передав параметр -chain, как показано в примере ниже.
- <verbatim>
- openssl pkcs12 -export -out sslcert.pfx -inkey key.pem -in sslcert.cert -chain cacert.pem
- </verbatim>
- ---+++ Конвертирование PEM в P7B
- <verbatim>
- openssl crl2pkcs7 -nocrl -certfile certificate.pem -out certificate.p7b -certfile CACert.cer
- </verbatim>
- ---+++ Конвертирование PKCS7 в PEM
- <verbatim>
- openssl pkcs7 -print_certs -in certificate.p7b -out certificate.pem
- </verbatim>
- ---+++ Преобразование формата PKCS12 в PEM-сертификат
- <verbatim>
- openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes
- </verbatim>
- Если нужно использовать существующий файл в формате pkcs12 на Apache или только в формате pem, в этом поможет приведенная выше команда.
- ---+++ Конвертирование PFX в PKCS#8
- <verbatim>
- openssl pkcs12 -in certificate.pfx -nocerts -nodes -out certificate.pem
- openSSL pkcs8 -in certificate.pem -topk8 -nocrypt -out certificate.pk8
- </verbatim>
- ---+++ Конвертирование P7B в PFX
- <verbatim>
- 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
- </verbatim>
- ---++ Проверка удалённого хоста
- ---+++ Проверка SSL-сертификата определенного URL-адреса
- <verbatim>
- openssls_client -connect yoururl.com:443 -showcerts
- </verbatim>
- ---+++ Проверка срока действия SSL-сертификата для URL-адреса
- <verbatim>
- openssl s_client -connect secureurl.com:443 2>/dev/null | openssl x509 -noout -enddate
- </verbatim>
- ---+++ Проверка, принимается ли на URL-адресе определённая версия SSL/TLS
- <verbatim>
- 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
- </verbatim>
- Если необходимо проверить, включен ли SSL V2 / V3 или нет, используйте приведенную выше команду. Если он включен, то вы получите сообщение «CONNECTED», в противном случае -сообщение «handshake failure».
- ---+++ Проверка того, принимается ли конкретный шифр на URL-адресе
- <verbatim>
- openssl s_client -cipher 'ECDHE-ECDSA-AES256-SHA' -connect secureurl:443
- </verbatim>
- Если шифр будет принят, вы получите сообщение «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"}%
|