FaqOpenssl.txt 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. %META:TOPICINFO{author="roman" comment="reprev" date="1606986355" format="1.1" reprev="1" version="3"}%
  2. %META:TOPICPARENT{name="ListOfFaq"}%
  3. ---+!! Полезные команды Openssl
  4. Если что-то не получается - идите [[https://ssl4less.ru/ssl-tools/convert-certificate.html][сюда]]. При копипасте заменить символ "-". Он наверняка будет не тот. Часть команд требует опции -passout pass:PASSWORD или -passin pass:PASSWORD или обоих вместе.
  5. %TOC%
  6. ---++ Типы сертификатов
  7. * PEM - очень часто используется в Linux based системах или оборудовании, файлы такого формата сертификата используют расширение .cer, .crt, and .pem.
  8. * DER - двоичная формат сертификата. DER формат не содержит текста "BEGIN CERTIFICATE/END CERTIFICATE", формат DER чаще всего использует расширение .der
  9. * PKCS#7 или P7B - эти форматы сертификата хранятся в формате Base64 ASCII и чаще всего имеют расширения файлов .p7b или .p7c. Файл P7B, кроме самого сертификата содержит цепочку сертификатов (открытых ключей) выпускающих центров сертификации (Intermediate CAs). Этот формат поддерживается в Microsoft Windows и Java Tomcat.
  10. * PKCS#12 или PFX - эти форматы представляют собой двоичный формат для хранения сертификата сервера, промежуточных сертификатов и закрытого ключа в одном зашифрованном файле. Файлы такого формата сертификата используют расширение .pfx and .p12. PFX файлы обычно используются на windows машинах для импорта/экспорта сертификатов и закрытого ключа.
  11. ---++ Создание нового секретного ключа и запрос на получение сертификата
  12. <verbatim>
  13. openssl req -out cert.csr -newkey rsa:2048 -nodes -key cert.key
  14. </verbatim>
  15. Команда генерирует CSR и файл 2048-битногоRSA-ключа. Если вы собираетесь использовать этот сертификат на Apache или Nginx, то необходимо отправить CSR-файл в центр сертификации. Он предоставит вам заверенный сертификат (в формате der или pem), который нужно настроить на веб-сервере Apache или Nginx.
  16. ---++ Создание самоподписанного сертификата
  17. <verbatim>
  18. openssl req -x509 -sha256 -nodes -days 730 -newkey rsa:2048 -key selfsigned.key -out sfcert.pem
  19. </verbatim>
  20. Команда генерирует самозаверенный сертификат и файл 2048-битного RSA-ключа.
  21. ---++ Верификация CSR-файла
  22. <verbatim>
  23. openssl req -noout -text -in cert.csr
  24. </verbatim>
  25. Верификация необходима, чтобы отправленный в регистрационный центр CSR-файл содержал всю необходимую информацию.
  26. ---++ Создание секретного RSA-ключа
  27. <verbatim>
  28. openssl genrsa -out private.key 2048
  29. </verbatim>
  30. ---++ Создание CSR с использованием существующего секретного ключа
  31. <verbatim>
  32. openssl req -out certificate.csr -keyexisting.key -new
  33. </verbatim>
  34. Если не хотите создавать новый секретный ключ вместо существующего, выполните приведенную выше команду.
  35. ---++ Удаление пароля-фразы из ключа
  36. <verbatim>
  37. openssl rsa -in certkey.key -out nopassphrase.key
  38. </verbatim>
  39. Если вы используете составной пароль (фразу) в файле ключа и работаете на Apache, то при каждом запуске нужно вводить секретную фразу. Если вас это раздражает, то можно использовать приведенную выше команду, чтобы удалить пароль-фразу из существующего ключа.
  40. ---++ Верификация секретного ключа
  41. <verbatim>
  42. openss lrsa -in certkey.key -check
  43. </verbatim>
  44. ---++ Печать содержимого файла сертификата
  45. <verbatim>
  46. openssl x509 -in certfile.pem -text -noout
  47. </verbatim>
  48. ---++ Верификация центра сертификации
  49. <verbatim>
  50. openssl x509 -in certfile.pem -noout -issuer -issuer_hash
  51. </verbatim>
  52. ---++ Проверка хеш-значения сертификата
  53. <verbatim>
  54. openssl x509 -noout -hash -in bestflare.pem
  55. </verbatim>
  56. ---++ Проверка содержимого сертификата в формате PKCS12
  57. <verbatim>
  58. openssl pkcs12 -info -nodes -in cert.p12
  59. </verbatim>
  60. PKCS12 является двоичным форматом, поэтому вы не сможете просмотреть его содержимое в текстовом редакторе. Для просмотра файла в формате PKCS12 используйте приведенную выше команду.
  61. ---++ Проверка даты истечения срока действия PEM-файла
  62. <verbatim>
  63. openssl x509 -noout -in certificate.pem -dates
  64. </verbatim>
  65. ---++ Конвертация сертификатов
  66. ---+++ Конвертирование x509 в PEM
  67. <verbatim>
  68. openssl x509 -in certificate.cer -outform PEM -out certificate.pem
  69. </verbatim>
  70. ---+++ Преобразование формата DER в PEM
  71. <verbatim>
  72. openssl x509 -inform der -in sslcert.der -out sslcert.pem
  73. </verbatim>
  74. Центр сертификации предоставляет SSL-сертификат в формате .der. Если вам необходимо использовать его в формате apache или .pem, примените приведенную выше команду для соответствующего преобразования.
  75. ---+++ Преобразование формата PEM в DER
  76. <verbatim>
  77. openssl x509 -outform der -in sslcert.pem -out sslcert.der
  78. </verbatim>
  79. ---+++ Преобразование сертификата и секретного ключа в формат PKCS#12
  80. <verbatim>
  81. openssl pkcs12 -export -out sslcert.pfx -inkey key.pem -in sslcert.crt
  82. </verbatim>
  83. Если необходимо использовать сертификат с оборудованием принимающим только формат PKCS#12, примените приведенную выше команду. Она генерирует один pfx файл, содержащий сертификат и ключ.
  84. Вы также можете включить цепочку сертификатов, передав параметр -chain, как показано в примере ниже.
  85. <verbatim>
  86. openssl pkcs12 -export -out sslcert.pfx -inkey key.pem -in sslcert.cert -chain cacert.pem
  87. </verbatim>
  88. ---+++ Конвертирование PEM в P7B
  89. <verbatim>
  90. openssl crl2pkcs7 -nocrl -certfile certificate.pem -out certificate.p7b -certfile CACert.cer
  91. </verbatim>
  92. ---+++ Конвертирование PKCS7 в PEM
  93. <verbatim>
  94. openssl pkcs7 -print_certs -in certificate.p7b -out certificate.pem
  95. </verbatim>
  96. ---+++ Преобразование формата PKCS12 в PEM-сертификат
  97. <verbatim>
  98. openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes
  99. </verbatim>
  100. Если нужно использовать существующий файл в формате pkcs12 на Apache или только в формате pem, в этом поможет приведенная выше команда.
  101. ---+++ Конвертирование PFX в PKCS#8
  102. <verbatim>
  103. openssl pkcs12 -in certificate.pfx -nocerts -nodes -out certificate.pem
  104. openSSL pkcs8 -in certificate.pem -topk8 -nocrypt -out certificate.pk8
  105. </verbatim>
  106. ---+++ Конвертирование P7B в PFX
  107. <verbatim>
  108. openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
  109. openssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx -certfile cacert.cer
  110. </verbatim>
  111. ---++ Проверка удалённого хоста
  112. ---+++ Проверка SSL-сертификата определенного URL-адреса
  113. <verbatim>
  114. openssls_client -connect yoururl.com:443 -showcerts
  115. </verbatim>
  116. ---+++ Проверка срока действия SSL-сертификата для URL-адреса
  117. <verbatim>
  118. openssl s_client -connect secureurl.com:443 2>/dev/null | openssl x509 -noout -enddate
  119. </verbatim>
  120. ---+++ Проверка, принимается ли на URL-адресе определённая версия SSL/TLS
  121. <verbatim>
  122. openssl s_client -connect secureurl.com:443 -ssl2
  123. openssl s_client -connect secureurl.com:443 -ssl3
  124. openssl s_client -connect secureurl.com:443 -tls1
  125. openssl s_client -connect secureurl.com:443 -tls1_1
  126. openssl s_client -connect secureurl.com:443 -tls1_2
  127. </verbatim>
  128. Если необходимо проверить, включен ли SSL V2 / V3 или нет, используйте приведенную выше команду. Если он включен, то вы получите сообщение «CONNECTED», в противном случае -сообщение «handshake failure».
  129. ---+++ Проверка того, принимается ли конкретный шифр на URL-адресе
  130. <verbatim>
  131. openssl s_client -cipher 'ECDHE-ECDSA-AES256-SHA' -connect secureurl:443
  132. </verbatim>
  133. Если шифр будет принят, вы получите сообщение «CONNECTED», иначе - сообщение «handshake failure».
  134. -- Main.RomanDmitriev - 15 Nov 2020
  135. %META:PREFERENCE{name="DENYTOPICVIEW" title="DENYTOPICVIEW" type="Set" value="WikiGuest"}%
  136. %META:PREFERENCE{name="DENYTOPICCHANGE" title="DENYTOPICCHANGE" type="Set" value="WikiGuest"}%
  137. %META:PREFERENCE{name="PERMSET_VIEW" title="PERMSET_VIEW" type="Local" value="registeredusers"}%
  138. %META:PREFERENCE{name="PERMSET_CHANGE" title="PERMSET_CHANGE" type="Local" value="registeredusers"}%