Работа с openssl windows

Содержание
  1. OpenSSL -что это? 21 пример команд OpenSSL, которые помогут вам на практике
  2. 1. Создание нового секретного ключа и запрос на получение сертификата
  3. 2. Создание самозаверяемого сертификата
  4. 3. Верификация CSR-файла
  5. 4. Создание секретного RSA-ключа
  6. 5. Удаление пароля-фразы из ключа
  7. 6. Верификация секретного ключа
  8. 7. Верификация файла сертификата
  9. 8. Верификация центра сертификации
  10. 9. Проверка хеш-значения сертификата
  11. 10. Преобразование формата DER в PEM
  12. 11. Преобразование формата PEM в DER
  13. 12. Преобразование сертификата и секретного ключа в формат PKCS#12
  14. 13. Создание CSR с использованием существующего секретного ключа
  15. 14. Проверка содержимого сертификата в формате PKCS12
  16. 15. Преобразование формата PKCS12 в PEM-сертификат
  17. 16. Проверка SSL-сертификата определенного URL-адреса
  18. 17. Определение версии OpenSSL
  19. 18. Проверка даты истечения срока действия PEM-файла
  20. 19. Проверка срока действия SSL-сертификата для URL-адреса
  21. 20. Проверка, принимается ли на URL-адресеSSL V2 или V
  22. 21. Проверка того, принимается ли конкретный шифр на URL-адресе
  23. ИТ База знаний
  24. Полезно
  25. Навигация
  26. Серверные решения
  27. Телефония
  28. Корпоративные сети
  29. Курс по сетям
  30. 15 примеров команды PING для диагностики сети
  31. Руководство по команде grep в Linux
  32. Рекурсивно найти слово в файлах и папках Linux
  33. Как восстановить пароль от root в CentOS 7
  34. Основные операции с файлами и папками в Linux
  35. Автоматическая смена паролей пользователей Linux
  36. Как перезагрузить сеть в Ubuntu?
  37. Руководство по OpenSSL: SSL-сертификаты, ключи и CSR
  38. Что такое сертификат SSL? Как работает SSL?
  39. В чем разница между TLS и SSL?
  40. Как я могу узнать, защищена ли веб-страница с помощью SSL?
  41. Зачем мне нужен SSL-сертификат?
  42. Где получить сертификат SSL?
  43. Типы SSL-сертификатов
  44. Уровни проверки SSL-сертификатов
  45. Проверка домена (DV SSL — Domain Validation)
  46. Расширенная проверка (EV SSL — Extended Validation)
  47. Как создать сертификат SSL
  48. Установка OpenSSL в Debian и Ubuntu
  49. Установка OpenSSL в Red Hat и CentOS
  50. Что такое запрос на подпись сертификата (CSR)?
  51. Как создать CSR
  52. Вариант 1: создать CSR
  53. Вариант 2. Создание CSR для существующего закрытого ключа
  54. Вариант 3. Создание CSR для существующего сертификата и закрытого ключа
  55. Вариант 4: Генерация самоподписанного(self-signed) сертификата
  56. Вариант 5: Генерация самоподписанного сертификата из существующего закрытого ключа и CSR
  57. Как скопировать содержимое файла CSR
  58. Продление сертификата — не используйте старые CSR повторно
  59. Как проверить свой CSR, SSL-сертификат и ключ
  60. SSL сертификат
  61. Закрытый ключ
  62. Проверьте, совпадают ли сертификат и закрытый ключ
  63. Устранение проблем с SSL
  64. Система не извлекает закрытый ключ автоматически
  65. Как найти свой ранее установленный закрытый ключ?
  66. Как переместить SSL-сертификат с сервера Windows на сервер, отличный от Windows?
  67. Команды OpenSSL для конвертации CSR
  68. Преобразовать PEM CSR и закрытый ключ в PKCS12 (.pfx .p12)
  69. Конвертировать PKCS12 в PEM CSR
  70. Конвертировать PEM в DER
  71. Конвертировать DER в PEM
  72. Зашифровать незашифрованный закрытый ключ
  73. Расшифровать зашифрованный закрытый ключ
  74. Проверить версию OpenSSL
  75. Заключение
  76. Полезно?
  77. Почему?

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-сертификатами.

ИТ База знаний

Курс по Asterisk

Полезно

— Узнать IP — адрес компьютера в интернете

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Калькулятор инсталляции IP — АТС Asterisk

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

Читайте также:  Как убрать установку обновлений windows

— Руководство администратора по Linux/Unix

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Протоколы и стандарты

Популярное и похожее

Курс по сетям

15 примеров команды PING для диагностики сети

Руководство по команде grep в Linux

Рекурсивно найти слово в файлах и папках Linux

Как восстановить пароль от root в CentOS 7

Основные операции с файлами и папками в Linux

Автоматическая смена паролей пользователей Linux

Как перезагрузить сеть в Ubuntu?

Еженедельный дайджест

Руководство по OpenSSL: SSL-сертификаты, ключи и CSR

Теория и практика

21 минута чтения

Технология Secure Socket Layer (SSL), изначально разработанная Netscape в 1994 году для поддержки возможностей электронной коммерции в Интернете, прошла долгий путь. Теперь SSL-сертификаты стали обычной необходимостью для любого веб-сайта. OpenSSL — криптографическая библиотека с открытым исходным кодом и инструментарий SSL. Приложения, содержащиеся в библиотеке, помогают создать безопасную среду связи для компьютерных сетей.

Обучайся в Merion Academy

Пройди курс по сетевым технологиям

Начать

В этом руководстве разберемся как с теорией, так и узнаем как работать с сертификатами на практике при помощи утилиты OpenSSL.

Что такое сертификат SSL? Как работает SSL?

Сертификат Secure Socket Layer (SSL) — это протокол безопасности, который защищает данные между двумя компьютерами с использованием шифрования.

Проще говоря, сертификат SSL — это файл данных, который в цифровом виде связывает криптографический ключ с сервером или доменом, а также с названием и местонахождением организации.

Как правило, сертификаты SSL используются на веб-страницах, которые передают и получают конфиденциальные данные конечного пользователя, такие как номер социального страхования, данные кредитной карты, домашний адрес или пароль. Онлайн формы оплаты являются хорошим примером и обычно шифруют вышеупомянутую деликатную информацию с использованием 128 или 256-битной технологии SSL.

Сертификаты SSL обеспечивают идентификацию удаленного компьютера, чаще всего сервера, но также подтверждают идентификацию вашего компьютера с удаленным компьютером для установления безопасного соединения. Обеспечение безопасности в Интернете всегда было улицей с двусторонним движением, и благодаря SSL-шифрованию сервер «пожимает руку» вашему персональному компьютеру, и обе стороны знают, с кем они общаются.

В чем разница между TLS и SSL?

Её нет! Transport Layer Security (TLS) — это обновленная версия Secure Socket Layer (SSL). Даже при том, что большинство безопасных соединений через протоколы TLS, люди продолжают называть это SSL.

Как я могу узнать, защищена ли веб-страница с помощью SSL?

Вы, вероятно, заметили, что в вашем браузере в адресной строке загорелся зеленый значок замка, а протокол соединения — это https. Ваш браузер сообщает вам, что веб-сайт защищен с использованием шифрования SSL. Если щелкнуть информационную панель сайта, появится дополнительная информация о подключении, а также информация о самом сертификате SSL.

Зачем мне нужен SSL-сертификат?

Давайте возьмем реальный пример. Допустим являетесь владельцем сайта интернет-магазина, м вы хотите, чтобы ваши посетители чувствовали себя в безопасности при посещении вашего интернет-магазина и, прежде всего, не стеснялись войти в систему и совершить покупку. Сертификат SSL и соединение HTTPS внушают доверие потребителей. Индустрия электронной коммерции тесно связана с доверием потребителей, и мы можем даже сказать, что ваш бизнес зависит от того, насколько ваши клиенты чувствуют себя в безопасности в течение всего процесса покупки.

Помимо очевидных причин безопасности, SSL-сертификат увеличивает SEO вашего сайта и рейтинг в Google, а также повышает доверие клиентов и, следовательно, повышает общий коэффициент конверсии. Если этого недостаточно, чтобы заставить вас задуматься о получении сертификата SSL для вашего домена, Google обязательно убедит вас. А именно, с июля 2018 года Google помечает каждый сайт без SSL как небезопасный.

Где получить сертификат SSL?

Сертификаты SSL проверяются и выдаются Центром сертификации (CA — Certificate Authorities). Вы подаете заявку, генерируя CSR (Certificate Signing Request — запрос на получение сертификата) с парой ключей на вашем сервере, которая в идеале будет содержать сертификат SSL. CSR содержит важные организационные детали, которые CA проверяет.

  1. Сгенерируйте CSR и пару ключей локально на вашем сервере. Пара ключей состоит из открытого (public key) и закрытого (private key) ключей.
  2. Отправьте CSR и открытый ключ в центр сертификации, который проверит вашу личность, а также владеете ли вы доменом, указанным в заявке. Центр сертификации проверяет вашу организацию и проверяет, зарегистрирована ли организация в расположении, указанном в CSR, и существует ли домен.
  3. После проверки организация получает копию своего сертификата SSL, включающего бизнес данные, а также открытый ключ. Теперь организация может установить сертификат на своем сервере.
  4. Когда центр сертификации выдает сертификат, он связывается с сертификатом «доверенного корня» (trusted root) центра сертификации. Корневые сертификаты встроены в каждый браузер и связаны с индивидуально выданными сертификатами для установления HTTPS-соединения.

Нередко популярные браузеры не доверяют всем сертификатам, выпущенным одним центром сертификации. Например, Google Chrome не доверяет корневым сертификатам Symantec, поскольку Symantec несколько раз нарушала отраслевые политики. Это означает, что все сертификаты, укоренившиеся в Symantec, стали недействительными независимо от даты их действия.

Типы SSL-сертификатов

Убедитесь, что вы выбрали центр сертификации, который поддерживает необходимый вам тип сертификата. Для вашего удобства ниже приведено описание каждого типа сертификата:

  • Однодоменный SSL-сертификат (Single Domain SSL Certificate) — Этот тип предназначен для использования в одном домене и не поддерживает субдомены. Например, если сертификат будет использоваться для wiki.merionet.ru, он не будет поддерживать любое другое доменное имя.
  • Несколько доменов (сертификаты SAN / UC) — Несколько сертификатов домена используются для многочисленных доменов и поддоменов. Помимо полного доменного имени, вы можете добавить поддержку других поддоменов, добавив их в поле «Альтернативное имя субъекта». Например, сертификат SAN может включать домен wiki.merionet.ru, его поддомен asterisk.merionet.ru, а также другой домен (например, shop.merionet.ru).
  • Wildcard сертификат — Сертификаты могут использоваться для домена, включая все его поддомены. Основное отличие состоит в том, что вместо выдачи для определенного полного доменного имени сертификаты с подстановочными знаками используются для широкого диапазона поддоменов. Например, сертификат подстановочного знака, выданный *.merionet.ru, может использоваться для широкого диапазона поддоменов в основном домене

Уровни проверки SSL-сертификатов

Центры сертификации имеют различные уровни проверки сертификатов в ответ на растущий спрос на сертификаты. Некоторые организации используют SSL только для шифрования, в то время как другие хотят показать своим клиентам, что они являются доверенной компанией. Различные потребности привели к различным уровням проверки сертификата.

Проверка домена (DV SSL — Domain Validation)

Этот тип сертификата SSL идеально подходит для защиты блогов, приложений социальных сетей и личных веб-сайтов. Центр сертификации не гарантирует идентичность организации, и проверяется только владение доменом.

Расширенная проверка (EV SSL — Extended Validation)

Центр сертификации проверяет право собственности на домен и проводит тщательное расследование организации, связанной с сертификатом EV. При рассмотрении расширенного запроса проверки соблюдаются строгие правила, и центр сертификации должен проверить следующее:

  1. Информация об организации соответствует официальным данным
  2. Физическое, юридическое и эксплуатационное существование субъекта
  3. Организация имеет исключительные права на использование домена, указанного в сертификате SSL
  4. Организация надлежащим образом санкционировала выдачу сертификата EV SSL

Как создать сертификат SSL

То, как сгенерировать запрос на подпись сертификата (CSR), зависит исключительно от платформы, которую вы используете, и конкретного выбранного вами инструмента.

Мы будем генерировать CSR с использованием OpenSSL.

OpenSSL — это широко используемый инструмент для работы с CSR-файлами и SSL-сертификатами, который можно загрузить с официального сайта OpenSSL. Это инструмент реализации с открытым исходным кодом для SSL/TLS, который используется примерно на 65% всех активных интернет-серверов, что делает его неофициальным отраслевым стандартом.

Установка OpenSSL в Debian и Ubuntu

Сначала проверим, установлена ли у нас утилита OpenSSL при помощи команды:

Если пакет OpenSSL установлен, мы получим следующий результат:

Читайте также:  Проблемы с настройкой обновления windows

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

Установка OpenSSL в Red Hat и CentOS

Red Hat (версия 7.0 и более поздние) должна поставляться с предустановленной ограниченной версией OpenSSL. Он предлагает только ограниченную поддержку для IDEA, RC5 и MDC2, поэтому вы можете установить недостающие функции.

Чтобы проверить, установлен ли OpenSSL на сервере yum (например, Red Hat или CentOS), выполните следующую команду:

Эта команда должна вернуть следующий результат:

Если ваш формат вывода отличается, это означает, что OpenSSL не установлен на вашем сервере. Выполните следующую команду для установки OpenSSL:

Что такое запрос на подпись сертификата (CSR)?

Запрос на подпись сертификата (CSR — Certificate Signing Request) содержит наиболее важную информацию о вашей организации и домене. Это зашифрованный блок текста, который включает информацию о вашей организации, такую как страна, адрес электронной почты, полное доменное имя и так далее Он отправляется в центр сертификации при подаче заявки на сертификат SSL.

Обычно вы генерируете пару CSR и ключ локально на сервере, где будет установлен сертификат SSL. Однако это не строгое правило. Вы можете сгенерировать пару CSR и ключ на одном сервере и установить сертификат на другом. Однако это усложняет ситуацию. Мы рассмотрим и этот сценарий.

SSL использует две длинные строки случайно сгенерированных чисел, которые известны как закрытые и открытые ключи. Открытый ключ доступен для публичного домена, так как он является частью вашего SSL-сертификата и сообщается вашему серверу.

Закрытый ключ должен соответствовать CSR, с которым он был создан, и, в конечном счете, он должен соответствовать сертификату, созданному из CSR. Если закрытый ключ отсутствует, это может означать, что сертификат SSL не установлен на том же сервере, который сгенерировал запрос на подпись сертификата.

CSR обычно содержит следующую информацию:

Параметр Описание Пример
Common Name или FQDN FQDN (fully qualified domain name) — это полное доменное имя вашего сайта.
Он должен совпадать с тем, что пользователи вводят в веб-браузере
wiki.merionet.ru
Organization Name (e.g., company) Полное юридическое название вашей организации, включая суффиксы, такие как LLC, Corp и так далее Merion Networks LTD
Organizational Unit Name Отдел в вашей организации, который занимается этим сертификатом Technology Division
Locality Name Город, в котором находится ваша организация Moscow
State/Region/Province (full name) Штат или регион, в котором находится ваша организация Moscow
Country Code (2 letter code) Страна, в которой находится ваша организация. Всегда вводится в виде двухбуквенного кода ISO RU
Email Address Адрес электронной почты, используемый для связи с веб-мастером сайта info@merionet.ru
Public Key втоматически созданный ключ, который создается с помощью CSR и входит в сертификат. Закодированный текстовый блок похож на закрытый ключ.
Смотрите пример закрытого ключа ниже.

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

Как создать CSR

Запросы на подпись сертификата (CSR) создаются с помощью пары ключей — открытого и закрытого ключа. Только открытый ключ отправляется в центр сертификации и включается в сертификат SSL, и он работает вместе с вашим личным ключом для шифрования соединения. Любой может иметь доступ к вашему открытому ключу, и он проверяет подлинность SSL-сертификата.

Закрытый ключ — это блок закодированного текста, который вместе с сертификатом проверяет безопасное соединение между двумя компьютерами. Он не должен быть общедоступным, и его не следует отправлять в ЦС.

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

Большинство пар ключей состоят из 2048 битов. Хотя пары ключей длиной 4096 бит более безопасны, они замедляют SSL-рукопожатия и создают нагрузку на серверные процессоры. Из-за этого большинство сайтов по-прежнему используют 2048-битные пары ключей.

Вариант 1: создать CSR

Первое, что нужно сделать, — это создать 2048-битную пару ключей RSA локально. Эта пара будет содержать как ваш закрытый, так и открытый ключ. Вы можете использовать инструмент Java key или другой инструмент, но мы будем работать с OpenSSL.

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

Что эта команда означает:

  • openssl — активирует программное обеспечение OpenSSL
  • req — указывает, что мы хотим CSR
  • –out — указывает имя файла, в котором будет сохранен ваш CSR. У нас в примере это certificatesigningrequest.csr
  • –new –newkey — создать новый ключ
  • rsa:2048 — cгенерировать 2048-битный математический ключ RSA
  • –nodes — нет DES, то есть не шифровать закрытый ключ в PKCS#12 файл
  • –keyout — указывает домен, для которого вы генерируете ключ

Далее ваша система должна запустить текстовую анкету для заполнения, которую мы описывали в таблице выше:

После завершения работы программы вы сможете найти файл CSR в вашем рабочем каталоге. Запрос на подпись сертификата, сгенерированный с помощью OpenSSL, всегда будет иметь формат файла .csr . Чтобы найти в папке все файлы этого формата используйте команду

Тут будет список всех сертификатов, останется только найти тот, что мы только что сгенерировали.

Также вы можете открыть файл .csr в текстовом редакторе, например nano, чтобы просмотреть сгенерированный буквенно-цифровой код.

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

Далее можно декодировать CSR и убедиться, что он содержит правильную информацию о вашей организации, прежде чем он будет отправлен в центр сертификации. В Интернете существует множество CSR-декодеров, которые могут помочь вам сделать то же самое, просто скопировав содержимое файла CSR, например sslshopper.

Вариант 2. Создание CSR для существующего закрытого ключа

Рекомендуется выдавать новый закрытый ключ всякий раз, когда вы генерируете CSR. Если по какой-либо причине вам необходимо сгенерировать запрос на подпись сертификата для существующего закрытого ключа, используйте следующую команду OpenSSL:

Вариант 3. Создание CSR для существующего сертификата и закрытого ключа

Один маловероятный сценарий, в котором это может пригодиться, — это если вам нужно обновить существующий сертификат, но ни у вас, ни у вашего центра сертификации нет первоначального CSR. Это позволит извлечь информацию о вашем домене и организации из сертификата SSL и использовать его для создания нового CSR, что позволит вам сэкономить время. Параметр -x509toreq преобразует сертификат в запрос сертификата.

Вариант 4: Генерация самоподписанного(self-signed) сертификата

Самозаверяющий сертификат обычно используется для сред тестирования и разработки, а также в интрасети. Давайте создадим самозаверяющий сертификат, используя следующую команду OpenSSL:

Параметр –days установлен на 365 , что означает, что сертификат действителен в течение следующих 365 дней. Параметр x509 указывает, что это будет самозаверяющий сертификат. Временный CSR генерируется, и он используется только для сбора необходимой информации. Если вы не хотите защищать свой закрытый ключ паролем, вы можете добавить параметр –nodes .

Центры сертификации не проверяют самоподписанные сертификаты. Таким образом, они не так безопасны, как проверенные сертификаты. Если ЦС не подписал сертификат, каждый основной браузер отобразит сообщение об ошибке «Ненадежный сертификат», как показано на рисунке ниже.

Вариант 5: Генерация самоподписанного сертификата из существующего закрытого ключа и CSR

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

Параметр –days установлен на 365 , что означает, что сертификат действителен в течение следующих 365 дней.

Как скопировать содержимое файла CSR

Откройте каталог, в котором находится ваш CSR-файл. Введите следующую команду:

Читайте также:  Linux копировать файлы новее

Замените domain параметром FQDN вашего CSR. Эта команда отобразит содержимое файла CSR. Скопируйте весь контент, начиная с BEGIN CERTIFICATE REQUEST и заканчивая END CERTIFICATE REQUEST .

Продление сертификата — не используйте старые CSR повторно

То, что некоторые веб-серверы позволяют использовать старые CSR для обновления сертификатов, не означает, что вы должны их использовать. В качестве меры безопасности всегда генерируйте новый CSR и закрытый ключ при обновлении сертификата. Привязка к одному и тому же секретному ключу — это дорога, вымощенная уязвимостями безопасности.

Также рекомендуется обновить SSL-сертификат до истечения срока его действия. В противном случае потребуется покупать новый сертификат.

Как проверить свой CSR, SSL-сертификат и ключ

Как мы уже упоминали, было бы разумно проверить информацию, представленную в CSR, прежде чем подавать заявку на сертификат. Используйте следующие команды для проверки вашего запроса на подпись сертификата, SSL-сертификата и ключа:

Эта команда проверит CSR и отобразит данные, указанные в запросе:

Следующая команда проверит ключ и его действительность:

SSL сертификат

Когда вам нужно проверить сертификат, дату его истечения и кто его подписал, используйте следующую команду OpenSSL:

Закрытый ключ

Закрытый ключ кодируется и создается в формате PEM на основе Base-64, который не читается человеком. Вы можете открыть его в любом текстовом редакторе, но все, что вы увидите, это несколько десятков строк, которые кажутся случайными символами, заключенными в открывающие и закрывающие заголовки. Ниже приведен пример закрытого ключа:

В большинстве случаев вам не нужно импортировать код закрытого ключа в файловую систему сервера, так как он будет создан в фоновом режиме, пока вы создаете CSR, а затем автоматически сохраняется на сервере. Во время установки SSL-сертификата система извлекает ключ.

Проверьте, совпадают ли сертификат и закрытый ключ

Для проверки вам нужно вывести контрольные суммы md5 и сравнить их. Выполните следующую команду:

Устранение проблем с SSL

Система не извлекает закрытый ключ автоматически

Некоторые системы не автоматизируют процедуру извлечения закрытого ключа. Кроме того, если вам нужно установить существующий сертификат на другом сервере, вы, очевидно, не можете ожидать, что он получит закрытый ключ. Основная сложность здесь заключается в том, как найти точное местоположение ключа. Способ получения ключа зависит от используемой ОС сервера и от того, использовался ли интерфейс командной строки или панель управления веб-хостинга определенного типа для генерации CSR.

Как найти свой ранее установленный закрытый ключ?

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

Nginx

Вы сможете найти местоположение личного ключа вашего сервера в файле виртуального хоста вашего домена.

Перейдите к местоположению корневого сервера сайта (обычно это каталог /var/www/ ) и откройте основной файл конфигурации сайта. Найдите директиву ssl_certificate_key , которая предоставит путь к файлу закрытого ключа.

Если вы не можете найти директиву ssl_certificate_key , возможно, существует отдельный файл конфигурации для деталей SSL. Ищите что-нибудь вроде ssl.conf .

Apache

При использовании библиотеки OpenSSL в Apache закрытый ключ по умолчанию сохраняется в /usr/local/ssl . Запустите openssl version –a , команду OpenSSL, которая определяет, какую версию OpenSSL вы используете.

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

Последняя строка OPENSSLDIR определяет путь к файлу. В приведенном примере это местоположение по умолчанию /usr/lib/ssl .

Если вы не создавали CSR с OpenSSL, вам нужно найти и получить доступ к вашему основному файлу конфигурации Apache, который является apache2.conf или httpd.conf . Директива SSLCertficateKeyFile будет указывать путь к файлу закрытого ключа.

Windows (IIS)

На серверах, работающих под управлением Windows Internet Information Services, операционная система сохраняет закрытый ключ в скрытой папке, так же как любая обычная ОС Windows хранит важные системные данные.

Однако, экспортируя файл .pfx , вы можете получить закрытый ключ и сертификаты. Для этого выполните следующие действия:

  1. Откройте консоль управления MMC (Microsoft Management Console).
  2. Разверните дерево Сертификаты (локальный компьютер), расположенное в корне консоли.
  3. Ваш сертификат находится либо в личной папке, либо в папке веб-хостинга. Вы можете идентифицировать каждый сертификат по его Common name (домену)
  4. Щелкните правой кнопкой мыши сертификат, который вы хотите экспортировать, и выберите Все задачи -> Экспорт.
  5. Следуйте инструкциям мастера для экспорта файла .pfx .

Теперь у вас есть то, что вам нужно, если вы хотите сохранить резервную копию или установить сертификат на другом сервере Windows.

Если вам нужно установить сертификат на другом сервере, который не работает под управлением Windows (например, Apache), вам необходимо сконвертировать файл .pfx и разделить файлы .key и .crt или .cer . Вы можете сделать это с OpenSSL.

Как переместить SSL-сертификат с сервера Windows на сервер, отличный от Windows?

Чтобы переместить сертификат с сервера Windows на сервер, отличный от Windows, необходимо извлечь закрытый ключ из файла .pfx с помощью OpenSSL.

  1. После скачивания файла .pfx , как описано в разделе выше, выполните следующую команду OpenSSL, чтобы извлечь закрытый ключ из файла: Где mypfxfile.pfx — это резервная копия сертификатов вашего сервера Windows.
  2. Эта команда создаст выходной файл privatekey.txt . Используйте текстовый редактор, чтобы открыть файл, и вы увидите закрытый ключ в верхней части списка в стандартном формате:
  3. Скопируйте закрытый ключ, включая теги BEGIN и END , и вставьте его в новый текстовый файл. Сохраните текстовый файл как Your_Domain_Name.key .

Команды OpenSSL для конвертации CSR

Если вы работаете с серверами Apache, запросы на подпись сертификатов (CSR) и ключи хранятся в формате PEM . Но что, если вы хотите перенести CSR на сервер Tomcat или Windows IIS ? Вам придется конвертировать стандартный файл PEM в файл PFX . Следующие команды помогут вам сделать это.

Примечание: Используйте параметр -nodes , если вы не хотите шифровать файл .key . Если вы не используете этот параметр, вам нужно будет указать пароль.

Преобразовать PEM CSR и закрытый ключ в PKCS12 (.pfx .p12)

Файлы FKCS12 используются для экспорта или импорта сертификатов в Windows IIS.

Эта команда возьмет закрытый ключ и CSR и преобразует его в один файл .pfx . Вы можете настроить экспортную фразу-пароль, но также можете оставить это поле пустым. Обратите внимание, что, объединив строки символов сертификата в конец одного файла PEM , вы можете экспортировать цепочку сертификатов в формат файла .pfx .

Конвертировать PKCS12 в PEM CSR

Если файл .pfx содержит цепочку сертификатов, файл .crt PEM также будет содержать несколько элементов.

Конвертировать PEM в DER

DER — это двоичный формат, обычно используемый с Java. Чтобы преобразовать файл ASCII PEM в DER , используйте следующую команду OpenSSL:

Конвертировать DER в PEM

Если вам нужно преобразовать файл .der в PEM , используйте следующую команду OpenSSL:

Зашифровать незашифрованный закрытый ключ

Следующая команда OpenSSL возьмет незашифрованный закрытый ключ и зашифрует его с помощью определенной вами парольной фразы.

Определите ключевую фразу для шифрования закрытого ключа.

Расшифровать зашифрованный закрытый ключ

Следующая команда OpenSSL возьмет зашифрованный закрытый ключ и расшифрует его.

При появлении запроса введите кодовую фразу для расшифровки закрытого ключа.

Проверить версию OpenSSL

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

Получим примерно такой вывод:

Заключение

Теперь вы знаете, как сгенерировать запрос на подпись сертификата с помощью OpenSSL, а также устранить наиболее распространенные ошибки.

Обучайся в Merion Academy

Пройди курс по сетевым технологиям

Начать

Полезно?

Почему?

😪 Мы тщательно прорабатываем каждый фидбек и отвечаем по итогам анализа. Напишите, пожалуйста, как мы сможем улучшить эту статью.

😍 Полезные IT – статьи от экспертов раз в неделю у вас в почте. Укажите свою дату рождения и мы не забудем поздравить вас.

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